Đây là bài 3 của chương 7: Khả năng truy cập, thuộc khóa demo HTML & CSS. Nội dung được dùng để trải nghiệm cấu trúc chương trình học; hãy thực hành trên dữ liệu và môi trường thử nghiệm riêng. Trong dự án xuyên suốt, bạn sẽ xây dựng website giới thiệu khóa học có trang chủ, danh sách bài học và biểu mẫu đăng ký.
Mục tiêu cụ thể
Focus nhìn thấy được giúp người dùng biết vị trí đang thao tác. Button dành cho hành động, link dành cho điều hướng. Thông tin không nên chỉ được diễn tả bằng màu.
Đề bài thực hành
Đi hết trang bằng Tab, Shift+Tab và Enter; liệt kê thành phần không thể dùng bằng bàn phím.
Quy trình từng bước
- Xác định đầu vào, đầu ra và trạng thái trước khi bắt đầu. Với khả năng truy cập, hãy ghi lại kết quả bạn mong muốn trước khi chạy ví dụ.
- Tạo bản thử nhỏ nhất trong một thư mục hoặc môi trường riêng. Chỉ dùng dữ liệu giả; không sao chép token, tài khoản hoặc dữ liệu cá nhân vào bài tập.
- Thực hiện yêu cầu: Đi hết trang bằng Tab, Shift+Tab và Enter; liệt kê thành phần không thể dùng bằng bàn phím.
- Quan sát kết quả và so sánh từng điều kiện chấp nhận. Khi chưa đạt, thay đổi một yếu tố mỗi lần để biết thay đổi nào tạo ra tác động.
- Lưu kết quả cùng ghi chú giải thích quyết định. Người khác cần tái hiện được thao tác mà không phải đoán cấu hình hoặc dữ liệu ban đầu.
Điểm khởi đầu
<style>
:focus-visible { outline: 3px solid #0284c7; outline-offset: 4px; }
</style>
<button type="button" aria-expanded="false" aria-controls="details">Xem nội dung</button>
<div id="details" hidden>Nội dung chương học</div>
Đối chiếu kết quả
- Mỗi điều khiển có tên rõ ràng
- Focus không bị xóa
- Trạng thái mở/đóng được cập nhật đồng bộ
Nếu kết quả khác dự kiến
Thêm aria nhưng không cập nhật trạng thái tạo thông tin sai. Ví dụ cần JavaScript để đổi aria-expanded và hidden cùng nhau; markup riêng chưa tạo được tương tác.
Chụp hoặc ghi lại đầu vào và đầu ra trước khi sửa. Xác nhận tệp đã lưu, đúng môi trường đang chạy và dữ liệu thử vẫn giữ nguyên. Sau khi sửa, chạy lại cả trường hợp ban đầu lẫn một trường hợp biên để tránh sửa được một nhánh nhưng làm hỏng nhánh khác.
Sản phẩm cần lưu
- Mã nguồn hoặc sơ đồ của bản thử.
- Dữ liệu đầu vào có thể dùng lại.
- Ba kết quả kiểm tra kèm giải thích.
- Một ghi chú về điều bạn sẽ làm khác nếu triển khai cho người dùng thật.