"rel" 属性或 "aria-attribute" 到 link 相对 div 的按钮?
"rel" attribute or "aria-attribute" to link a button to relative div?
我是在寻求建议,而不是真正的问题。我想用更合适的方法而不是限制来解决我的问题。
我有一个包含文本的 DIV
和一个 button
,可以切换“contenteditable
”属性,以使其可编辑。显然,我可以在页面中有不止一对 "button-div"。
<button class='toggle-edit'>Start Editing</button>
<div id='div-to-be-edited' contenteditable='false'>
...
</div>
我需要link按钮到其相对可编辑的div,我想到了rel属性或自定义 aria-attribute,如:
<button class='toggle-edit' rel='div-to-be-edited'>Start Editing</button>
或
<button class='toggle-edit' aria-edit-div='div-to-be-edited'>Start Editing</button>
我的想法是通过单击按钮的 jQuery、rel
或 aria-attribute
进行拦截,然后将 contenteditabile 属性应用于相关 DIV
.
问题是这些属性似乎并没有被特定的特定目的所考虑。你能建议我最干净的解决方案吗?
谢谢。
您不应该使用您正在考虑的任何一个属性,因为它们在形式上是无效的并且实际上没有用(或者,从理论上讲,更糟:某些未来的规范可能会赋予它们一个含义,可能与您的想法非常不同,可能刚好能弄得一团糟)。
唯一相关的属性是 role=button
,但它是 button
元素的默认属性。见 WD Using WAI-ARIA in HTML.
HTML中没有办法说“这个按钮影响那个元素”,这似乎是你想要的。此类内容应在用户界面中进行口头解释,或者在所有浏览模式下都显而易见。
button
元素不能有 rel
属性(你可以 easily check yourself), and WAI-ARIA does not 定义 aria-edit-div
属性。
我没有这方面的经验,但也许 (!) aria-controls
attribute 是合适的:
Identifies the element (or elements) whose contents or presence are controlled by the current element.
看起来像:
<button class="toggle-edit" aria-controls="div-to-be-edited">Start Editing</button>
<div id="div-to-be-edited" contenteditable="false"></div>
但是,从严格意义上讲,使元素可编辑可能不受控制 "contents or presence"。所以在使用之前先检查一下是否合适
如果aria-controls
不合适,我认为没有替代方案。在那种情况下,您将不得不使用不传达任何 meaning/relationship 的属性,这意味着 class
或 id
,或 else data-*
:
<button class="toggle-edit" data-controls="div-to-be-edited">Start Editing</button>
<div id="div-to-be-edited" contenteditable="false"></div>
我是在寻求建议,而不是真正的问题。我想用更合适的方法而不是限制来解决我的问题。
我有一个包含文本的 DIV
和一个 button
,可以切换“contenteditable
”属性,以使其可编辑。显然,我可以在页面中有不止一对 "button-div"。
<button class='toggle-edit'>Start Editing</button>
<div id='div-to-be-edited' contenteditable='false'>
...
</div>
我需要link按钮到其相对可编辑的div,我想到了rel属性或自定义 aria-attribute,如:
<button class='toggle-edit' rel='div-to-be-edited'>Start Editing</button>
或
<button class='toggle-edit' aria-edit-div='div-to-be-edited'>Start Editing</button>
我的想法是通过单击按钮的 jQuery、rel
或 aria-attribute
进行拦截,然后将 contenteditabile 属性应用于相关 DIV
.
问题是这些属性似乎并没有被特定的特定目的所考虑。你能建议我最干净的解决方案吗?
谢谢。
您不应该使用您正在考虑的任何一个属性,因为它们在形式上是无效的并且实际上没有用(或者,从理论上讲,更糟:某些未来的规范可能会赋予它们一个含义,可能与您的想法非常不同,可能刚好能弄得一团糟)。
唯一相关的属性是 role=button
,但它是 button
元素的默认属性。见 WD Using WAI-ARIA in HTML.
HTML中没有办法说“这个按钮影响那个元素”,这似乎是你想要的。此类内容应在用户界面中进行口头解释,或者在所有浏览模式下都显而易见。
button
元素不能有 rel
属性(你可以 easily check yourself), and WAI-ARIA does not 定义 aria-edit-div
属性。
我没有这方面的经验,但也许 (!) aria-controls
attribute 是合适的:
Identifies the element (or elements) whose contents or presence are controlled by the current element.
看起来像:
<button class="toggle-edit" aria-controls="div-to-be-edited">Start Editing</button>
<div id="div-to-be-edited" contenteditable="false"></div>
但是,从严格意义上讲,使元素可编辑可能不受控制 "contents or presence"。所以在使用之前先检查一下是否合适
如果aria-controls
不合适,我认为没有替代方案。在那种情况下,您将不得不使用不传达任何 meaning/relationship 的属性,这意味着 class
或 id
,或 else data-*
:
<button class="toggle-edit" data-controls="div-to-be-edited">Start Editing</button>
<div id="div-to-be-edited" contenteditable="false"></div>