HTML5 now allows< svg>和< math>标记与HTML文档,而不依赖于外部命名空间(体面概述here)。两者都有自己的alt属性模拟(见下文),今天的屏幕阅读器软件实际上被忽略。因此,盲人用户不可访问这些元素。
是否有计划为这些新元素实施标准的alt-text约定?我洗了文件,干了!
进一步细节
关于SVG:SVG的替代文本可以被认为是根标题或desc标签的内容。
<svg> <title>An image title</title> <desc>This is the longer image description</desc> ... </svg>
我发现one屏幕阅读器这样读,但是这个标准? Previous methods插入SVG也具有可访问性问题,因为< object>标签被屏幕阅读器处理不一致。
关于MathML:MathML的替代文本应存储在alttext
attribute中。
<math alttext="A squared plus B squared equals C squared"> ... </math>
由于屏幕阅读器似乎不承认这一点,数学渲染库MathJax在运行时将文本插入到aria-label属性中。
<span aria-label="[alttext contents]">...</span>
不幸的是NVDA,JAWS和其他人也不能可靠地读这些标签。 (WAI-ARIA)
关于两个:缺乏成功与大部分不支持的ARIA属性,我尝试使用标题属性。在这些“外部”HTML元素上,这些也似乎被忽略。
包起来
不止一个快速的黑客,我正在寻找推荐的方式放置替代文本这些新的HTML元素。也许有一个W3C规范,我忽略?还是还只是太早的游戏?
解决方法
免责声明:以下建议是我在过去几个月的编码中收集的。如果事情死了,请让我知道。我将尽力保持最新的浏览器和AT软件进步。
MathML
建议
在周围的div标签上使用role =“math”以及aria标签(请参阅docs)。添加tabindex =“0”允许屏幕阅读器专注于此元素;这个元素的aria标签可以使用特殊的快捷键(例如NVDA Tab)。
<div role="math" tabindex="0" aria-label="[spoken equivalent]"> <math xmlns="http://www.w3.org/1998/Math/MathML"> ... </math> </div>
限制/注意事项
> aria-label上的粗略屏幕阅读器支持(更不重要的是role =“math”)。更新:关于aria-label here和here的相关NVDA票。
>包装在div或span标签看起来不必要,因为math在HTML5中是一个first-class element。
>我发现很少引用MathML alttext标记。更新:这似乎是一个DAISY特定的添加,描述here。
参考文献
> http://www.w3.org/TR/wai-aria/roles#math
> http://lists.w3.org/Archives/Public/public-pfwg-comments/2008JanMar/0008.html
> http://www.w3.org/TR/wai-aria-practices/#math
SVG
建议
使用顶层< title>和< desc>标记与根SVG标记上的role =“img”和aria-label一起使用。
<svg role="img" aria-label="[title + description]"> <title>[title]</title> <desc>[long description]</desc> ... </svg>
限制/注意事项
>截至2011年2月,IE 9测试版读取所有< title>和< desc>标签,这可能是不可取的。但是,当元素也包含role =“img”时,NVDA,JAWS和WindowEyes将读取aria标签。
>如果加载SVG文件(即,不是HTML中的内联),根级别< title>标签将成为浏览器页面的标题,这将由屏幕阅读器读取。
参考文献
> http://lists.w3.org/Archives/Public/www-svg/2010Oct/0029.html
> http://lists.w3.org/Archives/Public/public-html/2010Jun/0127.html
> http://www.w3.org/TR/wai-aria/roles#img
> http://www.w3.org/TR/wai-aria/roles#namecalculation