Tôi có màn hình mở khóa nơi người dùng được nhắc nhập mã pin gồm bốn chữ số. Nếu người dùng nhập mã pin của họ không chính xác, trước đây vô hình TextView
được hiển thị cùng với thông báo lỗi. Tại thời điểm này, sẽ rất hữu ích cho TalkBack để đọc to nội dung của thông báo lỗi.Khi sử dụng TalkBack, cách ưa thích để cảnh báo người dùng khi nội dung của TextView đã thay đổi là gì?
Thông qua một số thử nghiệm, tôi nhận ra rằng tôi có thể đặt android:focusableInTouchMode="true"
trên chế độ xem và gọi theo chương trình View#requestFocus()
. Điều này hoạt động lần đầu tiên, nhưng không thành công trên các lỗi tiếp theo vì chế độ xem đã có tiêu điểm. Ngoài ra nó có vẻ như một ý tưởng tồi nói chung để ghi đè tập trung xem hiện tại.
Sau đó, tôi đã thử gọi View#announceForAccessibility(java.lang.CharSequence)
khi thông báo lỗi hiển thị. Rõ ràng phương pháp này sẽ âm thầm không nếu chế độ xem hiện không hiển thị. Không có vấn đề và nếu không nó hoạt động hoàn hảo. Tuy nhiên, nó chỉ có sẵn trong API cấp 16+ (Jelly Bean) mà thực sự giới hạn tính hữu dụng của nó. Phải có giải pháp tốt hơn vì TalkBack hỗ trợ API cấp 7 trở lên.
Tôi đã xem cả phiên I/O Google 2011 và 2012 về trợ năng, nhưng dường như không bao gồm trường hợp sử dụng cơ bản này. Cách tốt nhất để làm điều này là gì?
Chỉnh sửa 1: TLDR; Có cách nào để buộc TalkBack đọc to văn bản trước khi giới thiệu View#announceForAccessibility(java.lang.CharSequence)
trong Jelly Bean không?
Họ nhập mã PIN như thế nào? Nếu thông qua một 'EditText', bạn đã xem xét sử dụng' setError() 'thay vì một' TextView' riêng biệt chưa? Tôi đoán là 'setError()' sẽ được gắn vào khuôn khổ a11y rồi. – CommonsWare
Bố cục chứa bàn phím mềm tùy chỉnh được tạo thành từ các nút 'Nút' 0-9 được sử dụng để cung cấp đầu vào. Các chữ số không được hiển thị trong 'EditText', do đó không may' setError() 'không phải là một tùy chọn. Ý tưởng tốt mặc dù. Bố cục rất giống với bố cục màn hình mở khóa Google Wallet nếu bố cục đó hữu ích. – twaddington
cho bản ghi, setError sẽ không đưa ra thông báo về văn bản lỗi qua TalkBack trừ khi người dùng nhấn cụ thể vào nó (Khám phá bằng cách chạm). ErrorPopup sẽ không được bao gồm trong danh sách chế độ xem màn hình, do đó việc điều hướng bằng cách vuốt sẽ không đến được. Điều này có nghĩa là người dùng có thể mù phải biết rằng ErrorPopup tồn tại và nơi nó được hiển thị hoặc vấp ngã khi nó - đó là cách xa UX hợp lý. – straya