这是一个相当简单的可访问性问题。
假设我们有一个切换链接/按钮,当点击它时,会切换移动菜单。对于此类按钮,哪种格式更易于访问?
我们总共有 4 个选项,由
button
标签与 a
标签,和
onclick
属性与 $("#showMenu").on("click", function() { showMenu() } )
所有选项
<a href="#" onclick="showMenu();"></a>
<button onclick="showMenu();"></button>
<a href="#" id="showMenu"></a>
$("#showMenu").on("click",function() { showMenu() } );
<button id="showMenu"></button>
$("#showMenu").on("click",function() { showMenu() } );
优点和缺点
我已经读过,为了获得最佳的可访问性,应该将
<button>
标签用于 javascript 操作,而 <a>
标签用于普通链接。不幸的是,我再也找不到那篇文章了。人们总是说“将逻辑与内容分开”。我的回答是:你真的认为你的 Javascript
showMenu()
函数可以在没有那个链接的情况下工作吗?那么,您真的将逻辑与内容分开了吗?沿着这些思路,我确实喜欢使用事件处理程序来附加事件的想法,但是,这使得 代码在某些情况下更难维护,而不是更容易。如果我稍后删除该链接或更改 ID 或类,我将失去该功能。
onclick
属性提醒我要小心行事。如果我有多个链接,或者希望符合 508(见下一段),我将使用事件处理程序。508 标准要求每个 onclick 属性都附带一个等效的键盘属性。这让我抓狂,因为键盘用户可以通过键触发 onclick 事件,并且习惯于为文本链接这样做。* 此外,如果您添加任何类型的 onkeyup 事件处理程序,您需要过滤键等,这样用户就不会“卡住”在您的链接上,从而完全无法浏览网站的其余部分。
*见注:http://alistapart.com/article/popuplinks#section6
我的问题
<button>
标签对可访问性更好吗? 请注意,这个问题类似于以下问题,但我对
<button>
与 <a>
参数更感兴趣。另外,以下问题甚至没有提到可访问性,这是我主要关心的。jQuery.click() vs onClick
最佳答案
很多这是一个意见问题,但对我来说,当一个按钮执行一个操作时,一个链接会带你去某个地方。在你的情况下,如果是我,我会使用一个按钮。正如你提到的,我会使用 onclick 和它一起使用,以免以后忘记它。
所以你的选择#2。
关于jquery - 链接点击与按钮点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30770399/