Phần <a>
tử nchor chỉ đơn giản là một neo đến hoặc từ một số nội dung. Ban đầu, đặc tả HTML được phép cho các neo được đặt tên ( <a name="foo">
) và các neo được liên kết ( <a href="#foo">
).
Định dạng neo được đặt tên ít được sử dụng hơn, vì định danh phân đoạn hiện được sử dụng để chỉ định một [id]
thuộc tính (mặc dù để tương thích ngược, bạn vẫn có thể chỉ định [name]
các thuộc tính). Một <a>
phần tử không có [href]
thuộc tính vẫn hợp lệ .
Theo như ngữ nghĩa và kiểu dáng có liên quan, <a>
phần tử không phải là một liên kết ( :link
) trừ khi nó có một [href]
thuộc tính. Một tác dụng phụ của điều này là một <a>
phần tử mà [href]
không được đặt theo thứ tự tab theo mặc định.
Câu hỏi thực sự là liệu một <a>
phần tử có phải là một đại diện thích hợp của a <button>
. Ở cấp độ ngữ nghĩa, có một sự khác biệt rõ ràng giữa a link
và a button
.
Nút là một cái gì đó khi nhấp vào gây ra một hành động xảy ra.
Liên kết là một nút gây ra sự thay đổi trong điều hướng trong tài liệu hiện tại. Điều hướng xảy ra có thể được di chuyển trong tài liệu trong trường hợp định danh phân đoạn ( #foo
) hoặc chuyển sang tài liệu mới trong trường hợp url ( /bar
).
Vì các liên kết là một loại nút đặc biệt, chúng thường có các hành động được ghi đè để thực hiện các chức năng thay thế. Tiếp tục sử dụng một neo như một nút là ok từ quan điểm nhất quán, mặc dù nó không hoàn toàn chính xác về mặt ngữ nghĩa.
Nếu bạn lo ngại về ngữ nghĩa và khả năng truy cập của việc sử dụng một <a>
yếu tố (hoặc <span>
, hoặc <div>
) làm nút, bạn nên thêm các thuộc tính sau:
<a role="button" tabindex="0" ...>...</a>
Các vai trò nút cho người dùng biết rằng các yếu tố cụ thể đang được coi là một nút như một ghi đè cho bất cứ điều gì ngữ nghĩa các yếu tố cơ bản có thể có.
Đối với <span>
và <div>
các thành phần, bạn có thể muốn thêm trình nghe khóa JavaScript cho Spacehoặc Enterđể kích hoạt click
sự kiện. <a href>
và <button>
các phần tử làm điều này theo mặc định, nhưng các phần tử không có nút thì không. Đôi khi nó có ý nghĩa hơn để liên kết click
kích hoạt với một khóa khác. Ví dụ: nút "trợ giúp" trong ứng dụng web có thể bị ràng buộc F1.