2011-10-10 26 views
19

Tôi muốn phát hiện xem trình đọc màn hình có đang chạy trên máy của người dùng hay không để tránh âm thanh xung đột với thẻ âm thanh trong html. Nếu có, vui lòng cung cấp chi tiết về cách thực hiện điều này.Có thể sử dụng javascript để phát hiện xem trình đọc màn hình có đang chạy trên máy người dùng không?

+1

+1. Tôi không có bất kỳ kinh nghiệm nào về điều này, nhưng chắc chắn một trình đọc màn hình hỗ trợ thẻ '

+0

Thông thường, không thể phát hiện xem màn hình có đang chạy hay không. (Ngay cả khi một số công nghệ trợ năng đang chạy, nó có thể không phải là trình đọc màn hình dựa trên âm thanh: có thể là trình đọc màn hình chữ nổi hoặc ứng dụng điều khiển bằng giọng nói và điều khiển sử dụng một số kỹ thuật tương tự như trình tạo màn hình .) Bạn muốn làm gì khác nếu bạn có thể xác định rằng trình chạy màn hình đang chạy? – BrendanMcK

Trả lời

10

Bạn có lẽ không nên cố gắng làm bất cứ điều gì đặc biệt ngay cả khi bạn có thể phát hiện thấy một trình đọc màn hình đang chạy. Ngay cả khi bạn làm điều đó đúng cho một nhóm người dùng trình đọc màn hình, bạn có thể làm sai cho một nhóm khác. Tốt nhất là hãy tập trung vào việc viết HTML5 sạch tốt ngay từ đầu.

Lưu ý rằng không phải tất cả người dùng trình đọc màn hình đều sử dụng tính năng chuyển văn bản thành giọng nói; nhiều người sử dụng đầu ra chữ nổi. Ngoài ra, các loại công cụ trợ năng khác - chẳng hạn như nội dung đánh dấu và ứng dụng nhập bằng giọng nói - sử dụng các kỹ thuật và API tương tự (ví dụ: DOM, MSAA) mà trình đọc màn hình thực hiện, vì vậy bất kỳ kỹ thuật nào "phát hiện trình đọc màn hình" cũng có khả năng phát hiện những điều này - bạn không thể giả định rằng nó có nghĩa là người dùng hoàn toàn bị mù và chỉ sử dụng lời nói.

Hiện tại, thẻ âm thanh hiện không thể truy cập phổ biến, các trình duyệt khác nhau có các mức hỗ trợ trợ năng khác nhau - xem HTML5 Accessibility và cuộn xuống âm thanh để biết thêm chi tiết về hỗ trợ hiện tại. Tôi đã thấy một số trang thêm các điều khiển dựa trên HTML5 cộng với javascript sau thẻ âm thanh để họ có thể cung cấp giao diện người dùng của riêng họ để đảm bảo rằng người dùng bàn phím hoặc người dùng màn hình có thể phát/dừng âm thanh khi cần. (Cuối cùng, khi các trình duyệt bắt kịp, điều này không cần thiết.)

Theo như khả năng truy cập chung, WCAG 2.0 (Web Content Accessibility Guidelines) đề xuất rằng bất kỳ âm thanh nào phát tự động trong hơn 3 giây sẽ có phương tiện có thể truy cập để tạm dừng hoặc dừng âm thanh. (Tôi muốn đi xa hơn và khuyên bạn không nên sử dụng bất kỳ âm thanh tự động nào - khi sử dụng tính năng duyệt theo tab, thường không thể xác định tab nào sẽ phát ra âm thanh.)

+0

Kẻ phản đối - hãy quan tâm giải thích lý do tại sao bạn bỏ phiếu? Có điều gì có thể được cải thiện với câu trả lời này không? – BrendanMcK

-2

Theo liên kết http://northtemple.com/2008/10/07/javascript-and-screen-readers Vấn đề của bạn được giải quyết dứt khoát.

+0

thanx Arun để biết thông tin :) – shuklendu

+0

Xin chào bạn ......Tôi mới để stackoverflow pls bỏ phiếu cho câu trả lời của tôi nếu vấn đề của bạn được giải quyết – Untraceable

+6

Hi Arun, liên kết của bạn không cung cấp thông tin hữu ích về việc làm cho Javascript có thể truy cập vào screenreaders; nhưng đó không phải là những gì mà OP đã hỏi. Họ muốn biết cách phát hiện một trình đọc màn hình * từ JS, liên kết mà bạn đăng lên không trả lời. – BrendanMcK

2

Bạn không thể phát hiện trình đọc màn hình bằng javascript, bạn không thể phát hiện màn hình độc giả sử dụng bất kỳ công nghệ phía khách hàng nào. Bạn có thể phát hiện phần mềm đang chạy ứng dụng khách MSAA bằng Flash. Thông tin chi tiết về cách hoạt động và lý do tại sao nó không hữu ích và không nên được sử dụng để phát hiện trình đọc màn hình có sẵn tại đây: Developer Beware: Using Flash to Detect Screen Readers

+0

@billthelizard, sẽ hữu ích nếu bạn cung cấp lý do xóa nhận xét. –

3

Mặc dù có thể không hoàn toàn đáng tin cậy, có thể phát hiện tiến trình của trình đọc màn hình qua javascript bằng cách sử dụng tiêu điểm sự kiện, khi người dùng lướt qua nội dung.

"Liên kết điều hướng bỏ qua" ẩn (http://webaim.org/techniques/skipnav/) ẩn sẽ được tập trung, sẽ là một cách để phát hiện xem ai đó có đang sử dụng trình tạo màn hình hay không.

Mặc dù nó không giải quyết phần âm thanh của câu hỏi, tôi chỉ muốn cung cấp giải pháp từng phần này, vì tôi đang tìm kiếm các cách có thể để tự mình phát hiện trình đọc màn hình.

+1

Điều gì về những người đang điều hướng bằng bàn phím người _aren't_ đang sử dụng trình tạo màn hình? – steveax

+0

@stevax, Theo hiểu biết của tôi, bên cạnh các thuật ngữ IE thông thường được mô tả, việc điều hướng bằng bàn phím ngụ ý sự kiện tập trung cho dù bạn có sử dụng trình đọc màn hình hay không. Ví dụ, VoiceOver được hỗ trợ của Safari không áp dụng tiêu điểm trong khi lướt qua nội dung bằng bàn phím. Và một tabindex có thể được sử dụng để tập trung vào một yếu tố cụ thể theo thứ tự, khi tab người dùng thông qua trang. – hexalys

+0

Có lẽ tôi không rõ ràng trong bình luận của tôi. Điểm tôi cố gắng tạo ra là không thể phân biệt giữa người dùng trình đọc màn hình và những người vì lý do nào khác (có thể liên quan đến11) điều hướng bằng bàn phím không sử dụng trình đọc màn hình và cố gắng nhắm mục tiêu màn hình người dùng đọc theo cách này có lẽ sẽ dẫn đến một túi lớn bị tổn thương. – steveax

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