Dog*_*oku 3 html accessibility dialog wai-aria
我已经浏览了《难以置信的可访问对话框》 v3的代码,我注意到他们正在使用<h1>标签
<div id="modal" aria-hidden="false" aria-labelledby="modalTitle" aria-describedby="modalDescription" role="dialog">
<div id="modalDescription" class="screen-reader-offscreen">...</div>
<h1 id="modalTitle">...</h1>
<p>...</p>
<form name="form1" onsubmit="return false;">...</form>
</div>
Run Code Online (Sandbox Code Playgroud)
这让我思考,这实际上在语义上是正确的吗?我的意思是每个人都在说<h1>文档中应该只有1 个。
请注意,在先前版本的对话框中,他们给对话框一个role="document"使用<h1>ok imho 的对话框
我知道您已经接受了答案,但这并不完全正确。
当然,您可以<h1>在对话框中放任何东西,否则不会着火。但是,从技术上讲,这是不正确的。
标题级别应表示其在页面结构中的位置。如果您的页面只有一个<h1>,这是您最好的选择,那么对话框应该获得一个标题级别,该标题级别与其在页面结构(内容)中所处的位置相对应。
对话框很可能不适合其余内容,因此它应该是页面的子菜单<h1>(因为它是关于页面的对话框),使该对话框成为<h2>。
如果您使用的是选项卡式界面,并且已经为每个选项卡构建了选项卡<h2>,并且对话框应用于特定的选项卡,则对话框将带有<h3>。
等等。
添加role=document并不会改变这一点(除非您正在使用辅助技术进行明确测试以确保其能够按预期工作,否则可能会误用documentARIA角色)。
您可以看到,在HTML 5.1中,所有<h1>模型现在都被视为反模式。现在,W3C HTML验证器将对其进行标记。
您可以在由HTML5规范的一位编辑撰写的文章中了解有关结构标题的方法的更多信息:计算机对HTML5文档大纲说“不”
因此,要回答您的原始问题,不,<h1>在对话框中使用语义上不正确。