是否存在任何属性,或是否有办法指示两个部分是彼此的延续。下面的示例:
<section id="section-top">
<div>Item 1 </div>
<div>Item 2 </div>
</section>
<section id="section-bottom">
<div>Item 3 </div>
<div>Item 4 </div>
</section>
我需要将内容保留在单独的部分中,因为在按下扩展按钮之前,部分底部一直处于隐藏状态。因此,当它显示时,我需要指出它是第一个列表的一部分,以便当您向下箭头进入第3项而不是1/2时,叙述者将读取3/4,因为它在单独的部分中。
这可能吗?
答案 0 :(得分:2)
示例HTML的结构在语义上不正确,也就是说您可以使用aria
角色和属性来向屏幕阅读器显示预期的含义。
<section aria-label="Group of things">
<div role="list">
<section role="none presentation" id="section-top">
<div role="listitem">
<p>Thing 1</p>
</div>
<div role="listitem">
<p>Thing 2</p>
</div>
</section>
<section role="none presentation" id="section-bottom">
<div role="listitem" hidden>
<p>Thing 3</p>
</div>
<div role="listitem" hidden>
<p>Thing 4</p>
</div>
</section>
</div>
</section>
role=list
将原始<section>
元素包装在<div>
中。
列表包含其角色为listitem的子代,或角色为group的元素,而这些元素又包含listitem的子代。
<div>
与role=list
包裹在另一个<section>
元素中,并使用aria-label
属性将其转换为一个区域,并为其指定一个可访问的名称。
<section>
,使用aria-labelledby,aria-label或title属性具有可访问名称的区域。
<section>
元素赋予role=presentation
,以消除隐式角色的语义,但不影响内容。<div>
元素已被赋予role=listitem
。
作者 必须 确保具有
role=listitem
的元素包含在具有角色列表或组的元素中或由其拥有。
hidden
属性,您将需要继续学习answer中有用的codeMonkey,以了解如何显示/隐藏这些元素。
”“…因为底部一直处于隐藏状态,直到按下扩展按钮为止。”
答案 1 :(得分:0)
纯HTML不能提供一种方式来传达一个元素是另一个元素的延续。
我认为您应该只使用一个section
元素,并根据需要使用尽可能多的div
元素来对section
中的内容进行分组。
<section>
<div class="section-top">
<p>Item 1</p>
<p>Item 2</p>
</div>
<div class="section-bottom" hidden>
<p>Item 3</p>
<p>Item 4</p>
</div>
</section>
由于div
元素不是分段元素,因此不会分隔您的内容;所有这些都属于同一section
的一部分。