如何使Mac上的VoiceOver讀取aria-label
(或其他aria-
屬性),並且與tabindex
沒有衝突?VoiceOver(Mac)使用tabindex導航並忽略唱片屬性
我想提供一些輔助的東西到搜索結果頁面的結構是這樣
<div class="header">
<input value="" name="search" type="search"/>
</div>
<div class="main">
<div class="adv-block">
<a href="#">Link to adv 1</a>
<a href="#">Link to adv 2</a>
</div>
<div class="search-result">
<a href="#">Search result 1</a>
<a href="#">Search result 2</a>
</div>
</div>
首先,我想與標籤導航用戶跳過advertisments,所以我對提供的TabIndex和然後輸入搜索結果,就像這樣。
<div class="header">
<input value="" name="search" tabindex="1" type="search"/>
</div>
<div class="main">
<div class="adv-block">
<a href="#">Link to adv 1</a>
<a href="#">Link to adv 2</a>
</div>
<div class="search-result">
<a href="#" tabindex="2">Search result 1</a>
<a href="#" tabindex="3">Search result 2</a>
</div>
</div>
但後來我想幫助屏幕閱讀程序(在我的情況在Mac VoiceOver的)正確讀取的區域。因此,我將它的角色和描述標記爲搜索結果聯繫人。
<div class="header">
<input value="" name="search" tabindex="1" type="search"/>
</div>
<div class="main" role="main" aria-label="Search results">
<div class="adv-block">
<a href="#">Link to adv 1</a>
<a href="#">Link to adv 2</a>
</div>
<div class="search-result">
<a href="#" tabindex="2">Search result 1</a>
<a href="#" tabindex="3">Search result 2</a>
</div>
</div>
的問題是,VoiceOver的根據tabindex
也導航和它從輸入直接轉到第一連桿。
我試圖添加一個tablindex
屬性容器
<div class="header">
<input value="" name="search" tabindex="1" type="search"/>
</div>
<div class="main" role="main" aria-label="Search results" tabindex="2">
<div class="adv-block">
<a href="#">Link to adv 1</a>
<a href="#">Link to adv 2</a>
</div>
<div class="search-result">
<a href="#" tabindex="3">Search result 1</a>
<a href="#" tabindex="4">Search result 2</a>
</div>
</div>
但通常標籤導航這種情況下,改變作弊。
那麼,有沒有辦法讓VoiceOver讀取用戶前往搜索結果區?