如果使用jQueryUI创建一个radio / checkbox输入按钮组,则必须使用显式标签。这意味着您必须将label
ID与input
相关联。
如果您想在同一页面上使用多个相同的按钮组,这意味着您不能仅为每个按钮组使用相同的代码,因为ID在文档中必须是唯一的。
大多数浏览器都会接受非唯一ID,但我不会被迫违反Web标准,显然没有任何保证浏览器将来会继续支持非唯一ID。
我可以为每种情况生成唯一的ID,但这使代码复杂化并且增加了保证ID的问题确实是独一无二的。
处理多个相同按钮组的最佳方法是什么?
这表明了问题:http://jsfiddle.net/C3NyV/1/
在我的特定情况下,buttonset是由使用Widget工厂创建的插件生成的。我不知道这是否有助于解决这一特定问题。
答案 0 :(得分:1)
无论jQuery UI如何,出于可访问性原因,您应该将所有输入的id
属性与具有for
属性的标签进行匹配。当屏幕阅读器遇到输入字段时,它会使用此条件查找匹配的标签。
我建议使用更具语义的东西来区分不同的集合,而不是生成唯一的标识符。它可能是更多的工作,但它将是更标准,可访问和可维护的代码。