React Router v4 - 样式 Link 组件的有效方式
React Router v4 - valid way to style Link component
在 React Router v4 中设置 <Link>
组件样式的最正确方法是什么?如果 <Link>
只是一个锚标记,则不应在其中嵌套 <button>
元素。它也不应该嵌套在按钮内(因为它没有任何意义),所以最有效的方法是将其设置为按钮。这种方法的缺点是什么?
既然加了accessibility
标签,我就从这个角度来回答。
首先决定您是想要 link 还是按钮。 link 用于导航目的。它会将您带到另一个页面或当前页面上的其他地方。按钮用于执行操作。
所以您需要决定当用户选择元素时应该发生什么。您是在导航 (link) 还是在执行操作(按钮)?
如果您使用 link 并将其样式设置为按钮,因为您希望某个操作发生,例如 "add to cart" 或 "register" 或 "login",则有几个可访问性问题需要处理:
role
of the link needs to be set to button
- 您需要添加键盘处理程序以允许 space 键激活 link。 enter 已经有效,但 space 不是 link 的本机操作。当角色设置为 "button" 时,屏幕 reader 会将元素宣布为按钮,并告诉用户 "press spacebar to activate",因此您需要处理该键。
但是,如果您只使用
在 React Router v4 中设置 <Link>
组件样式的最正确方法是什么?如果 <Link>
只是一个锚标记,则不应在其中嵌套 <button>
元素。它也不应该嵌套在按钮内(因为它没有任何意义),所以最有效的方法是将其设置为按钮。这种方法的缺点是什么?
既然加了accessibility
标签,我就从这个角度来回答。
首先决定您是想要 link 还是按钮。 link 用于导航目的。它会将您带到另一个页面或当前页面上的其他地方。按钮用于执行操作。
所以您需要决定当用户选择元素时应该发生什么。您是在导航 (link) 还是在执行操作(按钮)?
如果您使用 link 并将其样式设置为按钮,因为您希望某个操作发生,例如 "add to cart" 或 "register" 或 "login",则有几个可访问性问题需要处理:
role
of the link needs to be set tobutton
- 您需要添加键盘处理程序以允许 space 键激活 link。 enter 已经有效,但 space 不是 link 的本机操作。当角色设置为 "button" 时,屏幕 reader 会将元素宣布为按钮,并告诉用户 "press spacebar to activate",因此您需要处理该键。
但是,如果您只使用