使用<sup>来表示功率的可访问性(例如4 ^ 2)?</sup>

时间:2012-08-31 15:10:51

标签: html accessibility superscript

使用<sup>标记指示权力的正确方法是什么?在屏幕阅读器中,3<sup>2</sup>不会只读为三 - 二或三十二吗?似乎必须有一种更容易实现的方法。

2 个答案:

答案 0 :(得分:6)

HTML中没有其他标记元素表示权限。即使sup元素也不代表指数;它意味着上标,反过来可能意味着不同的东西。根据HTML5草案,只有当这些元素的缺席会改变内容的含义时,才应使用supsub。但他们仍然会展示像<span lang="fr"><abbr>M<sup>lle</sup></abbr>这样的例子,其中上标是风格的。

sup的处理方式因浏览器而异,但我们真的不能指望浏览器将3<sup>2</sup>读为“三个上标二”或“三个二级”。如果他们这样做,M<sup>lle</sup>听起来真的很奇怪。

可以对上标字符的使用进行类似的评论,例如“²”。它们固有的含义是上标,而不是表示指示。

这也意味着您可以合理地考虑使用其他标记,例如3<span class=sup>2</span>span元素在语义上是空的,但它并不比具有“表示语义”的span差。这样做的原因可能是there is no really satisfactory way to style sup elements;与span一起,你从一张干净的桌子开始。

答案 1 :(得分:3)

一般情况,如果subscript/superscript存在Unicode等效项,则应该直接使用该字符而不是sub / { {1}}元素(它不是必须,只是推荐,所以继续使用你喜欢的任何内容)。

您可以在这些维基百科文章中找到一些下标/上标的Unicode字符:

如果将字符集设置为UTF-8等Unicode编码,则可以直接在文档中输入(或复制/粘贴)这些字符。 HTML5示例:³。否则你会使用character entities

例外:在数学上下文中使用MathML <meta charset="utf-8"> / msub(所以请勿使用这些特殊的下标/上标Unicode字符)。您可以在math元素中的HTML5中使用MathML。

这两个“应该”的来源:Unicode in XML and other Markup Languages: 5.6 Superscripts and Subscriptsvia blog post in German

  

似乎必须有一种更容易实现的方法。

通过使用msup / sub元素或使用相关的Unicode字符标记这些下标/上标等价物,您正在完成您的工作:告诉用户代理“意义”,所以他们可以知道如何处理文本,例如用于文档内搜索(浏览器中的“CTRL + f”),文本到语音(屏幕阅读器),网络搜索(搜索引擎),......

如果屏幕阅读器无法正确阅读/宣布sup,那么这将是一个(严重的)错误,他们应该修复。

此类用户代理的唯一问题是,如果人们滥用这些字符/元素。它在这种情况下并不相关,但也许对其他读者来说:当下标/上标仅为风格时(并且通过下标/上标没有新的含义),您应该使用CSS(而不是特殊的Unicode字符或{{1} } / 3<sup>2</sup>元素):vertical-alignsub / sup(您还必须调整字体大小。请参阅this answer以查看其他字体问题。)