我的Web应用程序中具有以下布局:
要使其符合可访问性,是否需要将“ Al Allbrook”与“ Requester”标签相关联?如果是这样,我们如何实现呢?
“ Al Allbrook”是指向用户个人资料的链接。
如果他们不相关,那么精明的读者怎么会知道“ Al Allbrook”是请求者?对于“网站”也是一样。
答案 0 :(得分:1)
除了@andy所说的以外,您还可以使用表。第一列可能具有“请求者”表标题(
当然,您可以组合使用这些技术。在链接中有一个表格和。我建议使用aria-labelledby
而不是aria-describedby
。虽然这两个属性都会使SR(*)读取额外的信息,但是在链接列表中仅显示aria-labelledby
属性。
(*)某些SR会直接宣布aria-describedby
属性,而其他SR只会告诉您该链接有一个描述,您必须按其他快捷键才能听到该描述。
关于这两个属性的好处是,元素可以将自身称为标签的一部分。一种递归标签,但是“ Accessible Name and Description Computation”规则处理递归。
如果计算名称,并且当前节点具有一个aria-labelledby属性,该属性至少包含一个有效的IDREF,并且当前节点尚不属于aria-labelledby遍历的一部分,请对其进行处理IDREF的出现顺序
看一个例子可能更容易。
<span id="comma" style="display:none">,</span>
...
<span id="requestor">Requestor</span>
<a href="#" id="myself" aria-labelledby="myself comma requestor">Al Allbrook</a>
需要注意的几件事。
aria-labelledby
属性(“ myself” ID)中引用自身。 display:none
,因此它不可见,但是由于逗号元素的ID在aria-labelledby
中列出,因此仍将使用它。 (请参阅上方“可访问名称” URL中的规则2A)例如:
<span id="comma" style="display:none">,</span>
...
<h3 id="requestor">Requestor</h3>
<a href="#" id="myself" aria-labelledby="myself comma requestor">Al Allbrook</a>
然后,如果您使用的是表格,所有这些代码都可以放在
答案 1 :(得分:0)
使用屏幕阅读器浏览网站的方式不同,因此取决于用户当前使用的导航模式。
以DOM顺序
在这种情况下,如果您的“请求者”在DOM中的链接之前,则该链接将在此人的名字之前被读取。另外,可以通过某些快捷方式读取链接前后的文本。
通过访问链接列表
屏幕阅读器用户可以请求不同的列表,例如所有标题的列表,或页面上所有链接的列表。
如果直接导航到链接对读取“请求者”很重要,则可以使用aria-describedby
或aria-labelledby
链接这两个元素。
或者,您可以将文本再次添加到链接本身,以可视方式隐藏。就像“请求者Al Allbrook”一样。