屏幕阅读器和 JavaScript 打印功能
Screen readers and JavaScript print feature
我为一个网页编写了一个基于 JavaScript 的打印功能。它从页面上的隐藏div 中提取 HTML,将其呈现到新窗口中并触发打印对话框。
该选项在具有onclick="printTheThing()"
事件的button
上可用。我知道例如屏幕阅读器对JavaScript有一些警告。我想知道我是否/阻止了多少人(例如盲人或视力障碍者)使用此功能。
该实现将打开一个新的浏览器窗口并附加到其文档中:
function printTheThing() {
var dispSettings = "toolbar=yes,location=no,directories=yes,menubar=yes,"
+ "scrollbars=yes,width=550,height=400",
html = $('#theDivToPrint').html(),
printWindow = window.open("", "", dispSettings),
doc = printWindow.document;
doc.open();
try {
doc.write('<html><head>');
doc.write('<title>' + title + '</title>');
doc.write('</head><body>');
doc.write(html);
doc.write('</body></html>');
} finally {
doc.close();
}
printWindow.focus();
printWindow.print();
}
更新:按钮如下所示:
<button type="button" onclick="printTheThing()">Print the thing!</button>
此外,我正在使用CSS将按钮替换为图像。我已经用火狐插件"尖牙"测试了按钮。它表明屏幕阅读器将完美地读出原始按钮文本。但是 Fangs 不提供任何交互性,所以我无法使用它测试打印。
根本不应该依赖Chrome扩展程序。你应该用NVDA测试东西,这是免费的。我猜谷歌的粉丝会说Chrome Vox很好。相信我,我已经在AT工作了近15年。
无论如何,我需要查看按钮的代码,而不是 JS...JS看起来不错。有些人很难知道有一个新窗口,但是打印对话框应该抓住焦点而不是窗口
要使用屏幕阅读器改进辅助功能,请使用 W3C WAI-ARIA 实时区域,有关详细信息,请参阅其建议和常见问题解答。
若要进行测试,可以使用以下屏幕阅读器:
在视窗上 - JAWS, NVDA
在 Linux 上 - orca(不使用 Chromium)+ Florian Margaine 的建议
您还可以使用 AChecker 测试是否符合 WCAG 2.0、第 508 节、Stanca 法案可访问性标准。
最好的方法肯定是自己尝试一下。
有一个谷歌浏览器扩展程序允许你这样做:https://chrome.google.com/webstore/detail/kgejglhpjiefppelpmljglcjbhoiplfn
呈现可打印页面的方法是使用 @media
CSS 指令。这样,您就不需要做任何特殊的事情,例如弹出另一个窗口或担心可访问性:内容只是正确打印(并且可能与屏幕上的布局非常不同,如果这是您想要的)。
- JavaScript打印功能使日历停止工作
- 如何用javascript打印php数组
- 打开抽屉的Javascript打印命令
- JavaScript-打印元素值
- 直接使用html5或javascript打印
- system.err风格的控制台以javascript打印
- 无法使用JavaScript打印带有for循环的验证错误
- 使用Javascript打印图像
- chrome在通过javascript打印时要求登录
- 在SharePoint中通过javascript打印
- JavaScript打印的数字有20位小数
- 使用Javascript打印HTML:未定义错误
- 使用javascript打印元素
- 使用 JavaScript 打印 PDF
- Javascript 打印多个网页 iFrame 内容(全部打印按钮)
- 如何使用嵌套循环使用 Javascript 打印到外部循环的输出中
- JavaScript:打印前 12 个月 - “March”打印两次
- Javascript:打印类属性
- 如何使用 javascript 打印带上划线的文本
- 通过 Javascript 打印在 IFrame 中加载的 PDF