[英]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來替換圖像按鈕。 我已經使用Firefox插件“Fangs”測試了該按鈕。 它表明屏幕閱讀器將完美地讀出原始按鈕文本。 但是Fangs沒有提供任何交互性,所以我不能用它測試打印。
不應依賴Chrome擴展程序。 您應該使用免費的NVDA測試內容。 我猜猜谷歌的粉絲們會說Chrome Vox很好。 相信我,我已經與AT合作了將近15年。
無論如何,我需要看到按鈕的代碼,而不是JS ... JS看起來很好。 有些人在知道有新窗口時遇到問題,但是打印對話框應該抓住焦點而不是窗口
最好的方法肯定是自己嘗試一下。
有一個Google Chrome擴展程序允許您這樣做: https : //chrome.google.com/webstore/detail/kgejglhpjiefppelpmljglcjbhoiplfn
呈現可打印頁面的方法是使用@media
CSS指令。 這樣你就不需要做任何特別的事情,如彈出另一個窗口或擔心可訪問性:內容只是正確打印(可能與屏幕上的布局非常不同,如果這是你想要的)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.