【发布时间】:2021-07-31 13:08:03
【问题描述】:
我可以在图片的替代文本中使用某种换行符,同时仍然遵守 XHTML 1.0 Strict 标准吗?
这样的……
<img src="foo.jpg" alt="Line 1\nLine 2" />
我问这个问题是因为我想在我的网站上发布以下屏幕截图,但出于 SEO 原因和视障人士,我想在替代文本中包含纯文本版本。
我更喜欢屏幕截图而不是纯文本版本,因为它看起来更具视觉吸引力。
【问题讨论】:
我可以在图片的替代文本中使用某种换行符,同时仍然遵守 XHTML 1.0 Strict 标准吗?
这样的……
<img src="foo.jpg" alt="Line 1\nLine 2" />
我问这个问题是因为我想在我的网站上发布以下屏幕截图,但出于 SEO 原因和视障人士,我想在替代文本中包含纯文本版本。
我更喜欢屏幕截图而不是纯文本版本,因为它看起来更具视觉吸引力。
【问题讨论】:
只需使用正常的换行符。
<img src="foo.jpg" alt="Line 1
Line 2" />
Stack Overflow 在他们的标题中这样做了 :)
然后添加这个 CSS:
img{white-space:pre}
【讨论】:
更好的方法是只为换行或回车添加 HTML 字符代码。
line feed is 

carriage return 
【讨论】:
我认为你可能太努力了。
替代文本应该是图像的替代品,而不是某种文字表示形式。
正确标记等等,这将是一个带有子列表的无序列表,屏幕阅读器将从 HTML 元素的嵌套中获取关系信息。用一些换行符代替它以获得粗略的视觉近似值几乎不是一回事,例如。您打算如何同时“显示”屏幕阅读器第一个换行符后的块在错误“内部”?
而且我怀疑搜索引擎除了丢弃它们之外,还会对 alt 文本中的换行符做任何事情。 (诚然是投机性的。)
您实际上想要的是以某种方式包含图像所具有的嵌套/关系信息,而是使用文本。从“[应用程序]通知的屏幕截图,显示两个错误[如果需要,请在此处详细]和两个信息项[详细]”之类的内容开始。
或者你可能会变得很迂腐,实际上用 HTML 创建列表,然后使用图像替换技术插入图像。
【讨论】:
@Murch 的回答是我不知道的。 但是,在整个应用程序中将空格分解为 BR 会变得很开销。
作为最简单的解决方案,您只需提供
img.class { overflow:hidden }
并快速而肮脏地克服它。
【讨论】:
对我来说img { white-space: pre; } 是不可行的,因为它阻止了替代文本的换行并使其溢出图像边界(debian 上的铬)。我使用的解决方案是添加大量&nbsp;s,直到文本进入下一行。希望屏幕阅读器会将其视为空白而忽略。
【讨论】: