对于可访问性,在HTML中我应该使用什么来标记非表单控件数据?

时间:2016-01-10 08:18:28

标签: html accessibility

w3c将标签定义为:

  

< label> element表示用户界面中的标题

然后继续说

  

标题可以与特定表单控件相关联

严格来说,表单控件包括按钮,复选框,单选按钮,菜单,文本输入,文件选择,隐藏控件或对象标签。

我的问题是,为了获取可访问性,只为普通只读信息表示标题的最佳做法是什么。我不想使用输入,我只想显示。我应该只使用标题吗? ARIA有什么帮助吗?

例如



<label>Primary question
  <div>What should I use to caption plain old informtion?</div>
</label>
<label>Potential answer
  <div>Just use headings</div>
</label>
<label>Date asked
  <div>10/01/2016</div>
</label>
  
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:2)

可以使用标题,因为屏幕阅读器支持对他们有好处。但是,标题与其下面的内容的关联是隐含的而不是严格指定的。

从语义html立场来看,定义列表可能更为可取。 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dl提供了定义列表的示例,其中dt和dd标记用于关联应满足您的用例的键/值对。不幸的是,屏幕阅读器不一定暴露定义列表的正确语义。

http://snook.ca/archives/html_and_css/definition-lists-v-tables提供了屏幕阅读器测试的示例,并发现屏幕阅读器中的定义列表支持不足。该文章建议在标题单元格中使用具有范围属性的表,作为更好的支持解决方案。

答案 1 :(得分:-1)

我想知道textarea是否合适?我知道我说我不想使用输入,但我想知道以下是否是一个好的答案?

label {
  display: block;
  margin-top: 20px;
}

textarea, input {
  display: block;
}

textarea[readonly], input[readonly] {
  border: none;
}
<label>Primary question
  <textarea readonly>What should I use to caption plain old informtion?'</textarea>
</label>
<label>Potential answer
  <textarea readonly>use readonly textareas?</textarea>
</label>
<label>Date asked
  <input readonly value='10/01/2016' />
</label>
<label>Editable comment
  <input/>
</label>

答案 2 :(得分:-1)

如果我举个例子,你会使用一个完美可理解的句子。您无需为屏幕阅读器格式化任何内容。您也可以使用特定标记;这可以针对有视觉辅助的视力正常的人和具有特定语调的盲人

  

主要问题:“我应该使用什么来标注普通旧信息?”

     

可能的答案:“只需使用plaind旧文本。”

<strong>Primary question</strong>:
<quote>What should I use to caption plain old information?</quote>
<strong>Potential answer</strong>:
<quote>Just use plaind old text.</quote>

事实上,你的例子中最重要的部分是你应该如何写日期,以便明确它是1月10日或10月1日。

  

提问日期:2016年10月1日

这不利于可访问性,最好的选择是使用完整的正式日期:

  

提问日期:2016年10月<abbr aria-label="First" title="First">1st</abbr>,

在上面的例子中,我解释了&#34; 1st&#34;缩写既为这个常用的缩写提供工具提示和咏叹调标签。

编辑:要回答我最喜欢的读者之一,您可以通过参考W3C文档{{3}来理解为什么我们选择使用strong元素来标记问题}。

  

当没有其他元素更合适时,b元素应作为最后的手段。特别是,标题应该使用h1到h6元素,重点应该使用em元素,重要性应该用强元素表示,标记或突出显示的文本应该使用标记元素。

这里我们想要在不是标题的文本中表示重要性。如果问题文本确实传达了文档结构的信息(例如,在FAQ页面中可能就是这种情况),则可以使用标题来标记问题。但在一般情况下,对于单个元素,这不适用。