Giới thiệu
Trong phát triển web, việc thiết kế nút toggle (nút chuyển đổi) không chỉ cần đẹp mắt mà còn phải đảm bảo tính khả dụng cho tất cả người dùng, bao gồm những người gặp khó khăn trong việc sử dụng công nghệ. Bài viết này sẽ hướng dẫn bạn cách tạo ra một nút toggle accessible, đồng thời chỉ ra những lỗi thường gặp và cách khắc phục chúng.
Tóm Tắt
Khi bạn bắt tay vào việc tạo một nút toggle, có thể bạn sẽ nghĩ ngay đến việc sử dụng thẻ <div>
và trang trí nó theo thiết kế của mình. Tuy nhiên, điều này có thể dẫn đến những vấn đề nghiêm trọng về khả năng truy cập cho người dùng. Hãy cùng tìm hiểu cách tốt nhất để đảm bảo nút của bạn có thể được sử dụng bởi mọi người và những gì có thể sai sót khi bạn thay thế các phần tử HTML gốc bằng những phần tử nhân tạo.
Nút Toggle
Để bắt đầu tạo một nút toggle, cách đơn giản nhất là sử dụng thẻ <button>
. Điều này không chỉ giúp bạn giữ lại các đặc tính của một nút gốc trong HTML mà còn đảm bảo rằng nó đáp ứng được các yêu cầu về khả năng truy cập. Hãy xem một ví dụ dưới đây:
html
<button id="like-button" aria-pressed="false" aria-label="Thích">
<span class="icon">👍</span>
</button>
Nút này sẽ hiện thị một biểu tượng thích và có thể được nhấn để thay đổi trạng thái giữa thích và không thích.
Cạm Bẫy Của Nút Nhân Tạo
Nếu bạn sử dụng thẻ <div>
để làm nút toggle, bạn sẽ không có được những tính năng gốc mà một thẻ <button>
mang lại. Dưới đây là bảng so sánh giữa thẻ <div>
và thẻ <button>
:
Tính Năng | <div> |
<button> |
Nhận Xét |
---|---|---|---|
Chỉ số Tab | ❌ | ✅ | Sử dụng bàn phím để điều hướng |
Nhãn nút | ❌ | ✅ | Người dùng không cần đoán |
Hỗ trợ Bàn phím | ❌ | ✅ | Hỗ trợ phím Space |
Kiểu dáng tập trung | ❌ | ✅ | |
Ngữ nghĩa | ❌ | ✅ | Trình duyệt biết đây là một nút |
Khả năng truy cập | ❌ | ⚠️ | Nút có tính khả dụng cao hơn |
Tính năng Form | ❌ | ✅ |
Những vấn đề này có thể ảnh hưởng đến trải nghiệm của người dùng và dễ dàng bị bỏ qua nếu không được kiểm tra kỹ lưỡng. Ngay cả khi bạn nhận ra và cố gắng sửa chữa chúng, bạn vẫn cần phải giải quyết bằng tay.
Giải Quyết Vấn Đề Khả Năng Truy Cập
Làm thế nào để chúng ta giải quyết các vấn đề đã thảo luận ở trên? Cách tốt nhất là sử dụng thẻ <button>
. Việc sử dụng thẻ <button>
sẽ khôi phục các tính năng gốc của nút. Điều này có thể ảnh hưởng đến kiểu dáng của nút toggle do các kiểu mặc định của nút. Tất cả các kiểu mặc định của nút có thể bị xóa bằng cách sử dụng thuộc tính CSS all: unset
, nhưng thuộc tính này sẽ xóa tất cả các kiểu mặc định, bao gồm cả kiểu dáng tập trung mà chúng ta vẫn nên giữ lại.
Sử Dụng Nhãn Để Mô Tả Nút Một Cách Rõ Ràng
Mục đích của nút phải rõ ràng với người dùng. Một biểu tượng đơn giản có thể không đủ rõ ràng hoặc thậm chí không khả dụng. Người dùng có thể hiểu điều khiển chỉ bằng cách nhìn. Để cải thiện khả năng truy cập, hãy thêm một nhãn mô tả cho nút. Dưới đây là danh sách những điều cần xem xét khi gán nhãn cho nút:
- Nhãn văn bản hiển thị bên cạnh biểu tượng: Nếu không có lý do chính đáng để ẩn nó, hãy bao gồm nhãn.
- Văn bản ẩn trong nút: Thêm văn bản vào một thẻ
<span>
bên cạnh biểu tượng và ẩn nó bằng CSS. - Sử dụng
aria-label
: Sử dụng thẻaria-label
trên nút để thêm nhãn mô tả. - Tooltip khi di chuột: Sử dụng tooltip để hiển thị nhãn khi người dùng tương tác với nút.
Trạng Thái Toggle
Nútn đã khả dụng và hoạt động tốt, nhưng trạng thái toggle thì sao? Làm thế nào để người dùng biết được trạng thái của nút? Để giải quyết vấn đề này, chúng ta sử dụng thẻ aria-pressed
. Thẻ này được sử dụng để chỉ định trạng thái cho nút toggle. Ví dụ:
html
<button aria-pressed="true">...</button>
💡 Mẹo: Đừng thay đổi nội dung của nút khi nó được chuyển đổi để tránh gây nhầm lẫn cho người dùng.
Nhược Điểm Của Việc Không Sử Dụng Nút Gốc
Việc thay thế bất kỳ phần tử HTML gốc nào đều có những nhược điểm riêng. Các phần tử gốc được trình duyệt công nhận và bao gồm nhiều thuộc tính quan trọng giúp đảm bảo tính nhất quán và khả năng truy cập giữa các trình duyệt.
Mặc dù HTML không có nút toggle chuyên dụng, nhưng bằng cách sử dụng thẻ button chung với nhãn và trạng thái đã nhấn, chúng ta có thể tiến gần đến giải pháp tối ưu nhất.
Kết Luận
Tóm lại, để tạo một nút toggle accessible, bạn cần:
- Tính năng nút cơ bản.
- Nhãn nút mô tả.
- Thẻ khả năng truy cập.
- Trạng thái toggle.
Hãy đảm bảo rằng nút toggle của bạn không chỉ đẹp mắt mà còn dễ sử dụng cho tất cả người dùng.