Skip to content

Repository files navigation


<AccessibleLink>

BundlephobiaTypesCode coverageBuild statusNPM VersionMIT License

npm i @accessible/link

A component that adds aria attributes and keydown events to non-A elements in order to make them act like native links.

Quick Start

Check out the example on CodeSandbox

import{LinkasAccessibleLink}from'@accessible/link'constLinkButton=()=>(<AccessibleLink><buttononClick={()=>(window.location.href='/foo')}>Go to /foo</button></AccessibleLink>)

API

<Link>

Adds role="link" and tabIndex={0} props to its child component unless those props are already defined in the child component's props. Also adds a keydown event for the Enter key which causes the component's onClick property to fire.

Props

PropTypeDefaultRequired?Description
childrenReact.ReactElementundefinedYesThe component you want to add accessible roles and keydown events to.

useA11yLink(target, onClick)

A React hook for adding a11y properties and link/role=link interop to elements.

constLink=()=>{constref=React.useRef(null)consta11yProps=useA11yButton(ref,(event)=>{// This is your `onClick` handlernavigate.to('/home')event.preventDefault()})return<button{...a11yProps}ref={ref}/>}

Arguments

ArgumentTypeRequired?Description
targetReact.RefObject<T> | T | nullYesA React ref or HTML element
childrenReact.ReactElementYesThe component you want to turn into a button that handles focus and space, enter keydown events.

Returns

{
readonly onClick: (event: React.MouseEvent<T,MouseEvent>)=>void;readonlyrole: "button";readonly tabIndex: 0;}

LICENSE

MIT

About

🅰 A component that adds aria attributes and keydown events to non-A elements in order to make them act like native links

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages