在 HTML 形式中,斜体“(必填)”应该得到 <i>、<em> 还是 <span class="italic">?
In a HTML form, should an italicized "(required)" get <i>, <em> or <span class="italic">?
为了迎合屏幕阅读器和语义正确,在 HTML 形式中显示斜体 "required" 或 "optional" 标签的正确方法是什么?
<i>*required</i>
<em>*required</em>
<span class="italic">*required</span>
*<span class="italic">
等同于 CSS
中的 font-style="italic"
<i>
表示 "italic",用于引号和外来词(例如拉丁语和法语表达)。例如:
I had a deja vu.
<em>
表示"emphasis",表示强调一个词。示例:
The food was really good!
用哪一个由你决定。在你的情况下,我建议 <em>
.
说实话没关系。重要的是输入本身的 HTML5 required
属性。
可以说,<em>
和 <i>
在语义上都不正确。您的问题已经假定您希望文本在视觉上是斜体,而不是您希望它被强调或识别为外文、船名等。
也就是说,中性元素可能是您的最佳选择,例如 <span>
,以避免在 none 处赋予语义。此外,如果您使用 <em>
或 <i>
.
,屏幕 reader 将不会以任何不同方式宣布文本
您可以更进一步,完全跳过添加元素并使用 CSS 为您添加内容(前提是您只支持一种语言 and/or 有一个简单的方法 CSS 每种语言):
input[required] + label::after,
textarea[required] + label::after {
content: " (required)"
}
或反过来:
input:not([required]) + label::after,
textarea:not([required]) + label::after {
content: " (optional)"
}
屏幕 readers 宣布 CSS 生成的内容,以防您担心这可能是个问题。
为了迎合屏幕阅读器和语义正确,在 HTML 形式中显示斜体 "required" 或 "optional" 标签的正确方法是什么?
<i>*required</i>
<em>*required</em>
<span class="italic">*required</span>
*<span class="italic">
等同于 CSS
font-style="italic"
<i>
表示 "italic",用于引号和外来词(例如拉丁语和法语表达)。例如:
I had a deja vu.
<em>
表示"emphasis",表示强调一个词。示例:
The food was really good!
用哪一个由你决定。在你的情况下,我建议 <em>
.
说实话没关系。重要的是输入本身的 HTML5 required
属性。
可以说,<em>
和 <i>
在语义上都不正确。您的问题已经假定您希望文本在视觉上是斜体,而不是您希望它被强调或识别为外文、船名等。
也就是说,中性元素可能是您的最佳选择,例如 <span>
,以避免在 none 处赋予语义。此外,如果您使用 <em>
或 <i>
.
您可以更进一步,完全跳过添加元素并使用 CSS 为您添加内容(前提是您只支持一种语言 and/or 有一个简单的方法 CSS 每种语言):
input[required] + label::after,
textarea[required] + label::after {
content: " (required)"
}
或反过来:
input:not([required]) + label::after,
textarea:not([required]) + label::after {
content: " (optional)"
}
屏幕 readers 宣布 CSS 生成的内容,以防您担心这可能是个问题。