2017-10-05 106 views
0

我試圖讓屏幕閱讀器讀取從display:none切換到display:block的一些內容。我認爲使用role="alert"是一種好方法,但它僅在內容處於divpspan時有效。有沒有辦法讓屏幕閱讀器讀取文檔上的新內容(或出現的內容)?角色警報僅適用於幾個標籤

但我的內容是divspanp混合和屏幕閱讀器不讀(如h1ulli,和其他人)等標籤。

如何讓屏幕閱讀器讀取所有內容?

這裏有一個例子:

<button onclick="show()"> 
    Show 
</button> 

<div id="button" style="display:none" role="alert"> 
    Lettera A 
    <div> 
    Lettera B 
    <h1> 
    Lettera E 
    </h1> 
    <div> 
     Lettera C 
     <ul> 
     <li>Lettera D</li> 
     </ul> 
    </div> 
    </div> 
</div> 

的Javascript:

function show() { 
    $('#button').show(); 
} 

在這個例子中,屏幕閱讀器(我在Windows上使用NVDA在Firefox)只讀:
LETTERA一個
LETTERA乙
Lettera C

回答

0

aria-live property就是你正在尋找的。它用於指示元素將被更新,並描述用戶代理,輔助技術和用戶可從活動區域獲得的更新類型。

當區域被指定爲禮貌時,輔助技術會通知用戶更新,但通常不會中斷當前任務,並且更新的優先級較低。當區域被指定爲有主見,輔助技術將立即通知用戶,並有可能清除以前的更新

+0

我試着問前實現ARIA-live屬性的講話隊列,但我想我犯了一些錯誤。你可以用小提琴來實現它嗎?使用上面的例子(我的問題中的代碼)? –

+0

下面是我該怎麼做: https://jsfiddle.net/ffuckkpj/ – Josh

+0

用這個解決方案,屏幕閱讀器(Firefox上的NVDA在我的情況下,Windows上)只說「框架顯示按鈕」 –