使用<sup>
标签是表示权力的正确方式吗?在屏幕阅读器中,不会3<sup>2</sup>
只是读为三二或三十二吗?似乎必须有一种更方便的方法来做到这一点。
2 回答
HTML 中没有其他标记元素来指示权力。甚至sup
元素也不意味着指数;它表示上标,这反过来可能意味着不同的东西。根据 HTML5 草案,sup
并且sub
应该“仅在缺少这些元素会改变内容的含义时使用。但他们仍然展示了类似的例子<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
具有“表示语义”的 差多少。这样做的原因可能是没有真正令人满意的方式来设置sup
元素的样式;,span
你从一张干净的桌子开始。
一般来说,当下标/上标有 Unicode 等价物时,您应该直接使用该字符而不是sub
/sup
元素(这不是必须的,只是建议,所以继续使用您喜欢的任何东西)。
您可以在这些 Wikipedia 文章中找到其中一些下标/上标 Unicode 字符:
如果将字符集设置为 Unicode 编码(如 UTF-8),则可以直接在文档中输入(或复制/粘贴)这些字符。HTML5 示例:<meta charset="utf-8">
. 否则你会使用字符实体。
例外:在数学上下文中,您应该将MathML与msub
/一起使用msup
(因此不要在此处使用这些特殊的下标/上标 Unicode 字符)。math
您可以在元素内使用 HTML5 中的 MathML 。
这两个“应该”的来源:XML 和其他标记语言中的 Unicode:5.6 上标和下标(通过德语博客文章)
似乎必须有一种更方便的方法来做到这一点。
sub
通过使用/元素或使用相关的 Unicode 字符标记这些下标/上标等价物sup
,您正在完成您的工作:告诉用户代理“含义”,因此他们可以知道如何处理文本,例如 in-文档搜索(浏览器中的“CTRL + f”)、文本转语音(屏幕阅读器)、网络搜索(搜索引擎)……</p>
如果屏幕阅读器不能正确阅读/宣布3²
or 3<sup>2</sup>
,这将是一个(严重的)错误,他们应该修复。
这种用户代理的唯一问题是人们是否滥用这些字符/元素。在这种情况下它不相关,但可能对于其他读者:当下标/上标只是风格(并且通过下标/上标没有新含义)时,您应该使用 CSS(而不是特殊的 Unicode 字符或sub
/sup
元素):与/垂直对齐(您也必须调整字体大小。请参阅this answer to a different question。)sub
super