2012-10-24 38 views
5

Tôi đang làm rất nhiều công việc với khả năng truy cập và WCAG tại thời điểm này nhưng một điều tôi đang cố gắng làm việc tốt cho tất cả người dùng và đặc biệt là những người sử dụng điều hướng bằng bàn phím .tabindex hoặc tập trung cho điều hướng bàn phím

Điều này nghe có vẻ đơn giản, hãy ném liên kết đến một neo ở đầu trang và mọi người có thể 'nhấp vào' nó để bỏ qua điều hướng hoặc nội dung không quan trọng khác.

Vấn đề là, khi bạn nhấp vào liên kết anchor bằng bàn phím và sau đó nhấn lại phím 'tab', bạn sẽ được đưa đến phần tử ngay sau liên kết 'bỏ qua nội dung' chứ không phải trong phần nội dung chính. Tức là, liên kết mà bạn liên kết đã không nhận được sự tập trung.

Dường như đây là vấn đề phổ biến, vì tôi chưa tìm thấy trang web có liên kết 'bỏ qua nội dung' có liên kết hoạt động chính xác. Ngay cả trang web Vision Australia cũng có vấn đề này.

Tôi đã hy vọng rằng ai đó biết về kỹ thuật/hack/thư viện để thực hiện công việc này như mong muốn.

EDIT: Tôi có thể xác nhận rằng sự cố này xảy ra trong Chrome và Safari, nhưng không xảy ra với Firefox trên máy Mac của tôi.

+2

Đây là thực sự là một vấn đề về Chrome/WebKit; nó thực sự hoạt động tốt trong IE và FireFox trên Windows; do đó, vấn đề thực sự là làm thế nào để làm việc xung quanh một lỗi trình duyệt, HTML chính nó là thực sự tốt cho mỗi spec. – BrendanMcK

Trả lời

6

Hầu hết các trình duyệt đều cuộn trực quan xuống đích của liên kết cùng một trang, nhưng không thực sự đặt tiêu điểm bàn phím vào liên kết đó. Bạn có thể sử dụng JavaScript (hoặc JQuery, như trong ví dụ dưới đây) để cung cấp cho tập trung vào các mục tiêu:

$("a[href^='#']").not("a[href]='#'").click(function() { 
    $("#"+$(this).attr("href").slice(1)+"").focus(); 
}); 

Tuy nhiên, có một lỗi trong WebKit có thể ngăn chặn thậm chí giải pháp này làm việc trong các trình duyệt WebKit như Chrome và Safari . Tôi đã viết một bài đăng blog về vấn đề này khoảng một năm trước, và một số người khác đã được xây dựng trên nó:

+1

Trong khi IE và Firefox không nhất thiết phải tập trung phần tử đích (đồng bằng A không có a href không được tập trung vào vị trí đầu tiên), chúng hoạt động chính xác trong đó * lần * nhấn phím TAB * sẽ * di chuyển tiêu điểm đến mục tabbable tiếp theo sau mục tiêu. Đây là hành vi lâu đời kể từ phiên bản đầu của IE. Chrome/WebKit đáng chú ý ở chỗ nó chỉ cuộn và tabbing tiếp tục từ liên kết ban đầu chứ không phải vị trí mục tiêu. – BrendanMcK

+0

Bài đăng tuyệt vời, Terril. Tôi thích khái niệm liên kết đến một id chứ không phải là một neo được đặt tên. Mặc dù có những thiếu sót của các trình duyệt, nếu người đọc màn hình chính nhận được nó đúng, tôi đoán rằng làm cho nó tốt hơn (nhưng vẫn không hoàn hảo.) – Christian

Các vấn đề liên quan