<a>
nchor 요소 또는 일부 콘텐츠에서 단순히 앵커입니다. 원래 HTML 사양에서는 명명 된 앵커 ( <a name="foo">
) 및 연결된 앵커 ( <a href="#foo">
)에 허용되었습니다 .
조각 식별자가 [id]
속성 을 지정하는 데 사용되기 때문에 명명 된 앵커 형식은 덜 일반적으로 사용됩니다 (역 호환성을 위해 여전히 [name]
속성을 지정할 수 있음 ). 없는 요소 속성은 여전히 유효합니다 .<a>
[href]
의미 및 스타일과 관련하여 <a>
요소가 속성 :link
이 없으면 링크 ( ) 가 아닙니다 [href]
. 이것의 부작용은 기본적으로 탭이없는 <a>
요소 [href]
는 탭 순서에 있지 않다는 것입니다.
실제 질문은 <a>
요소 자체 만의 적절한 표현 인지 여부 <button>
입니다. 의미 수준에서 a link
와 a 사이에는 뚜렷한 차이 가 button
있습니다.
버튼은 클릭하면 동작이 발생하는 것입니다.
링크는 현재 문서에서 탐색을 변경하는 버튼입니다. 발생하는 탐색은 조각 식별자 ( #foo
) 의 경우 문서 내에서 이동하거나 URL ( /bar
) 의 경우 새 문서로 이동할 수 있습니다.
링크는 특수한 유형의 버튼이므로 대체 기능을 수행하기 위해 작업을 재정의하는 경우가 많습니다. 의미 적으로 정확하지는 않지만 앵커를 버튼으로 계속 사용하는 것은 일관성 관점에서 괜찮습니다.
<a>
요소 (또는 <span>
, 또는 <div>
)를 버튼 으로 사용하는 의미 및 액세스 가능성에 대해 우려하는 경우 다음 속성을 추가해야합니다.
<a role="button" tabindex="0" ...>...</a>
버튼의 역할은 특정 요소가 기본이되는 요소가 있었다 무엇이든 의미에 대한 재정의와 같은 버튼으로 처리되고 있음을 사용자에게 알려줍니다.
for <span>
및 <div>
elements 의 경우 이벤트에 대한 JavaScript 키 리스너를 추가 Space하거나 Enter트리거 할 수 있습니다 click
. <a href>
및 <button>
요소는 기본적으로이 작업을 수행하지만, 비 버튼 요소하지 않습니다. 때로는 click
트리거를 다른 키 에 바인딩하는 것이 더 합리적 입니다. 예를 들어, 웹앱의 "도움말"버튼이에 바인딩 될 수 있습니다 F1.