簡體   English   中英

屏幕閱讀器和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來替換圖像按鈕。 我已經使用Firefox插件“Fangs”測試了該按鈕。 它表明屏幕閱讀器將完美地讀出原始按鈕文本。 但是Fangs沒有提供任何交互性,所以我不能用它測試打印。

不應依賴Chrome擴展程序。 您應該使用免費的NVDA測試內容。 我猜猜谷歌的粉絲們會說Chrome Vox很好。 相信我,我已經與AT合作了將近15年。

無論如何,我需要看到按鈕的代碼,而不是JS ... JS看起來很好。 有些人在知道有新窗口時遇到問題,但是打印對話框應該抓住焦點而不是窗口

最好的方法肯定是自己嘗試一下。

有一個Google Chrome擴展程序允許您這樣做: https//chrome.google.com/webstore/detail/kgejglhpjiefppelpmljglcjbhoiplfn

使用屏幕閱讀器改善可訪問性使用W3C WAI-ARIA實時區域,有關更多信息,請參閱他們的建議常見問題解答

測試你可以使用以下屏幕閱讀器:
在Windows上 - JAWS,NVDA
在Linux上 - orca(不與Chromium合作)+ Florian Margaine的建議

您還可以使用AChecker測試WCAG 2.0,Section 508,Stanca Act可訪問性標准的合規性。

呈現可打印頁面的方法是使用@media CSS指令。 這樣你就不需要做任何特別的事情,如彈出另一個窗口或擔心可訪問性:內容只是正確打印(可能與屏幕上的布局非常不同,如果這是你想要的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM