Tôi có các yếu tố trên một trang "có thể tập trung" (các nút, các yếu tố với tabindex, v.v.) và trình đọc màn hình đọc nội dung tốt.
Tuy nhiên, tôi có một số yếu tố khác không thể tập trung (do thực tế có rất nhiều trong số chúng - kết quả danh sách thả xuống, v.v.), vì vậy tôi không muốn người dùng nhấp vào tab vô số lần, nhưng chúng có thể điều hướng qua trái / phải / các phím lên / xuống và chúng được chọn lớp CSS (mặc dù một số phần tử khác - cha mẹ của chúng - thực sự được tập trung)
Tôi muốn làm cho người đọc đọc những yếu tố cụ thể đó, với lớp "được chọn". Tôi phải làm nó như thế nào?
(Tôi đã thử áp dụng thuộc tính aria-nhãn = "đọc cái này" cho chúng, nhưng nó không hoạt động; nó chỉ hoạt động nếu phần tử thực sự được tập trung)
Dưới đây là chi tiết để giúp bạn hiểu những gì tôi muốn đạt được:
<div tabindex="0" >
<span>title1</span>
<ul>
<li class="selected">item1</li>
<li>item2</li>
<li>item3</li>
</ul>
</div>
<div tabindex="0">
<span>title2</span>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
</div>
Đây là câu đố: https://jsfiddle.net/d5gbjst1/1/
Bạn có thể chuyển qua lại giữa 2 div và bất kỳ trình đọc màn hình nào (tôi đã thử với Windows Narrator, NVDA và JAWS) sẽ đọc "title1" và tất cả các mục cho cái đầu tiên và "title2" và tất cả các mục cho cái thứ hai, tùy thuộc vào nơi tập trung .
Lớp thông báo "được chọn" trên mục đầu tiên trong ul đầu tiên. Bây giờ, tôi duyệt với các mũi tên lên / xuống thông qua danh sách ul của mình và lớp "được chọn" chuyển từ mục này sang mục tương ứng. (Đó là mã JS riêng biệt, không bao gồm trong ví dụ này vì mục đích đơn giản)
Khi lớp "được chọn" được áp dụng cho phần tử, tôi muốn buộc người đọc đọc nó. Có thể ở tất cả?
Chỉnh sửa: Tôi cũng đã thử thêm thuộc tính vào ul và li, vẫn không gặp may:
<ul role="list">
<li role="listitem">