Mã của bạn là chính xác. Rõ ràng, "phía sau 1" là discovered. Từ liên kết, có vẻ như việc sử dụng aria-atomic="true"
có thể khắc phục được sự cố. Tuy nhiên, ví dụ như được đưa ra hiện hoạt động bình thường trong IE9 và Firefox.
Nếu bạn chưa tình cờ gặp chúng, hãy xem các trường hợp thử nghiệm trên codetalks và accessibleculture.org. Có rất nhiều sự khác biệt tinh tế để nhận thức được. Chỉ cần không ngạc nhiên khi các bài kiểm tra thất bại! Trong năm qua, tôi đã gặp một vài thủ thuật có thể giúp bạn.
Phương pháp 1: role="alert"
Vai trò alert
là supposed to be tương đương với aria-live="assertive"
, nhưng lớn tuổi hơn các phiên bản của JAWS đã không xử lý nó đúng cách. Kiểm tra these examples từ tháng hai năm 2011, trong đó nêu rằng:
Nếu bạn đang tìm kiếm để hỗ trợ JAWS 10 trong IE7 hoặc IE8 ở tất cả, đó là khả năng tốt nhất để tăng gấp đôi lên trên cảnh báo với cả hai vai trò = "alert" và aria -live = "quyết đoán". Mặc dù điều này hơi dư thừa vì theo định nghĩa, vai trò cảnh báo sẽ được xử lý như một vùng sống quyết đoán, làm như vậy cho phép JAWS 10 tự động thông báo nội dung của cảnh báo được cập nhật trong hai trình duyệt đó.
Cả Firefox4 + và IE9 đều không yêu cầu điều này. Nhưng nó sẽ là một cái gì đó như thế này:
<div id="statusbar" role="alert" aria-live="assertive">
Contents will be spoken when changed
</div>
Cách 2: tập trung buộc Hack
Bằng cách tự động tạo ra một phần tử DOM và buộc tập trung vào nó, bạn có thể "lừa" hầu hết trình đọc màn hình vào đọc nội dung. Đó là hackish, nhưng hiệu quả ... và phần nào là điểm của ví dụ Create and Focus. Đơn giản hóa, bạn có thể làm điều gì đó như sau:
<div id="statusbar" role="alert" tabindex="-1"></div>
$('#statusbar')
.clear()
.append('<div>' + newString + '</div>')
.children().first().focus()
;
Chỉ ẩn/hiển thị nội dung thay vì thực sự hoạt động khá tốt trong phần lớn thời gian. Tuy nhiên, tập trung của VoiceOver nằm trên phần tử và không nói nội dung của nó khi được hiển thị lại. Do đó, việc loại bỏ nó khỏi DOM có vẻ là phương pháp dễ dàng nhất hiện nay.Tôi không thích nó, nhưng đó là trạng thái của sự vật.
Vấn đề tương tự dường như không xảy ra trong [này video giới thiệu aria-live] (http://www.youtube.com/watch?v=9nZnTdSAkH0#t=3m8s) - có lẽ đó là một cái gì đó để làm với thiết lập cụ thể của tôi? –