我希望使用aria-labelledby提供有关表单输入的辅助功能信息。此属性接受一个id列表(空格分隔),该列表自然包含“for”表单输入的label元素的id。但是,我希望还为可以在以后动态添加到表单中的元素添加一个或多个附加ID。
当我使用https://github.com/GoogleChrome/accessibility-developer-tools对我的标记运行审核时,它会通知我“ARIA状态和属性值必须有效”。如果我在添加带有无引用ID的元素后重新运行审计,则测试通过。
我的问题是会筛选读者barf,如果他们遇到一个ID,指出DOM中目前没有任何元素?我不是那么关心审核结果(他们在那里)帮助我,但最终不是我的客户)。
*主要是我想知道我是否可以在那里填充我以后可能会出现的ID,或者当我添加和删除我想要引用的元素时我应该更新属性的值
答案 0 :(得分:2)
屏幕阅读器不会“barf”,但用户的体验可能很奇怪。那是重要的问题,对吗?您可以使用VoiceOver(MacOS附带)或NVDA(适用于Windows)免费查看。
答案 1 :(得分:2)
属性的概念是帮助用户并使页面更易于访问,因此用它们引用不存在的元素是违背的想法。如果属性使用,它将用于以对用户重要的方式引用元素,因此当然可能会出现问题 - 即使辅助软件或浏览器处理错误是最好的方式。
它也正式不正确,因为该属性已声明为包含id
属性值,并且当id
属性不存在时,字符串不能是这样的值。
因此,只要您添加该值,就应该让脚本修改属性值以包含id
属性值,但不能更快。