我正在努力使我们的手风琴可以通过 aria-expanded 等 aria 标签访问。当单击手风琴触发器标题或按下键盘上的“返回”按钮时,我正确地更改了 aria-expanded 的值。出于某种原因,虽然我用来测试的 ChromeVox 最初只会说“按钮折叠”,但一旦点击后值发生变化,就不会说“按钮展开”。
我查看了其他网站上的示例,例如https://www.w3.org/TR/wai-aria-practices/examples/accordion/accordion.html并且 ChromeVox 在那里正确读取了 aria-expanded 的两种状态,所以我'我认为这是关于我的代码的结构如何阻止 ChromeVox 宣布“扩展”状态。
这是一个手风琴部分的示例:
<div class="accordion-section">
<button tabIndex="0" id="rules_list" class="accordion" aria-expanded="false" aria-controls="sectRules">
<span class="title">Rules</span>
</button>
<div class="content" role="region" id="sectRules" aria-labledby="rules_list">
<h4>What rules must all visitors follow?</h4>
<ul class="list">
<li style="list-style-type:disc; border-top:0px; margin-bottom:0px; padding-bottom:0px; padding-top:10px; overflow:visible;">rule 1</li>
<li style="list-style-type:disc; border-top:0px; margin-bottom:0px; padding-bottom:0px; padding-top:10px; overflow:visible;">rule 2</li>
<li style="list-style-type:disc; border-top:0px; margin-bottom:0px; padding-bottom:0px; padding-top:10px; overflow:visible;">rule 3 etc..</li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
相关的js是:
/* Generic Accordion */
$('.accordion .title').click(function() {
$(this).parent().parent().children('.content').toggle(); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试测试网页的可访问性。
我在 MacBook 上使用 Apple Voice Over 作为屏幕阅读器,如果我使用 Voice Over 按键快捷键,一切都会正常工作。我可以使用语音快捷键(Ctrl + 选项 + 箭头键)来浏览页面的所有元素。
但是,如果我关闭语音并尝试仅使用 Tab 键导航网页,则它无法正常工作。选项卡仅考虑标题、链接和按钮等元素,但忽略普通文本。
这是正常的吗?这是可以接受的吗?