พื้นหลัง
ผู้ที่ใช้โปรแกรมอ่านหน้าจอ TalkBack จะไปยังส่วนต่างๆ ของแอปได้ 2 วิธีดังนี้
- แตะเพื่อสำรวจ: ลากนิ้วผ่านหน้าจอเพื่อสำรวจการจัดวางองค์ประกอบทางกายภาพ
- การไปยังส่วนต่างๆ แบบเชิงเส้น: เลื่อนไปทางซ้ายและขวา เพื่อไปข้างหน้าและข้างหลังทีละรายการ
แอป Android ควรรองรับทั้งการสำรวจด้วยการแตะและการไปยังส่วนต่างๆ แบบเชิงเส้นอยู่แล้ว โดยปกติแล้ว ลำดับการส่งผ่านในระหว่างการไปยังส่วนต่างๆ แบบเชิงเส้นควรตรงกับลำดับภาพ หรือควรมีการเพิ่มประสิทธิภาพลำดับการส่งผ่านในลักษณะอื่น เพื่อรักษาการจัดลำดับเชิงตรรกะสำหรับผู้ใช้โปรแกรมอ่านหน้าจอ
โดยค่าเริ่มต้น TalkBack จะใช้ลำดับชั้นการแสดงผลของแอปในการกำหนดลำดับการส่งผ่านรายการในระหว่างการไปยังส่วนต่างๆ แบบเชิงเส้น
การใช้งาน
ในกรณีที่ลำดับชั้นการแสดงผลของแอปไม่ได้แสดงถึงโครงสร้างเชิงตรรกะของแอป นักพัฒนาซอฟต์แวร์กำหนดการส่งผ่านการเข้าถึงได้โดยการตั้งค่า android:accessibilityTraversalBefore
หรือ android:accessibilityTraversalAfter
คุณสมบัติเหล่านี้จะเป็นตัวระบุว่าโปรแกรมอ่านหน้าจอควรเข้าชมเนื้อหาของการแสดงผลหนึ่งก่อน (หรือหลัง) เนื้อหาของการแสดงผลอื่น ระบบจะส่งผ่านการแสดงผลที่ไม่มีความสัมพันธ์ก่อนหรือหลังตามลำดับ ซึ่งพิจารณาโดยโปรแกรมอ่านหน้าจอ
ลำดับการส่งผ่านการเข้าถึงต่างจากลำดับ "โฟกัสอินพุต" ที่ใช้สำหรับการไปยังส่วนต่างๆ ด้วยแป้นพิมพ์ คุณระบุลำดับการไปยังส่วนต่างๆ ด้วยแป้นพิมพ์ได้โดย android:nextFocusDown
, android:nextFocusLeft
, android:nextFocusRight
และ android:nextFocusUp
เมื่อใช้ accessibilityTraversalBefore
และ accessibilityTraversalAfter
ลองใช้เคล็ดลับต่อไปนี้เพื่อหลีกเลี่ยงการเกินขีดจำกัดของลำดับการส่งผ่าน
- ใช้เฉพาะแอตทริบิวต์เหล่านี้ในที่ที่การลำดับเชิงตรรกะแตกต่างจากการจัดลำดับของลำดับชั้นการแสดงผล
- แต่ละองค์ประกอบที่ผู้ใช้โฟกัสได้ด้วยการแตะเพื่อสำรวจควรโฟกัสได้ในระหว่างการไปยังส่วนต่างๆ แบบเชิงเส้นด้วย
- ลำดับการส่งผ่านควรสอดคล้องกับการไปยังส่วนต่างๆ แบบเชิงเส้นโดยไม่คำนึงถึงทิศทาง เช่น ท่าทางสัมผัสเพื่อย้ายโฟกัสไปยังองค์ประกอบ "ถัดไป" ที่ตามด้วยท่าทางสัมผัสเพื่อย้ายโฟกัสไปยังองค์ประกอบ "ก่อนหน้า" ทันทีควรส่งผลให้เกิดการเปลี่ยนโฟกัสกลับไปยังองค์ประกอบเดิมเสมอ
- วงจรไม่ควรเกิดขึ้นเมื่อกำหนด
accessibilityTraversalBefore
และaccessibilityTraversalAfter
หรือผู้ใช้อาจพบสถานการณ์ที่ไม่สามารถเข้าถึงองค์ประกอบบางอย่างได้เมื่อใช้การไปยังส่วนต่างๆ แบบเชิงเส้น
ดีไซน์
เมื่อออกแบบแอป ลองคิดว่าคุณตั้งใจจะให้ผู้ที่ใช้โปรแกรมอ่านหน้าจอส่งผ่านข้อมูลแบบเชิงเส้นซึ่งปรากฏในอินเทอร์เฟซอย่างไร ตามหลักแล้ว ลำดับการส่งผ่านจะตรงกับลำดับของการแสดงข้อมูลเป็นภาพ อย่างไรก็ตาม เมื่อลำดับดังกล่าวไม่ตรงกัน คุณสามารถระบุลำดับการส่งผ่านที่แสดงโครงสร้างเชิงตรรกะหรือ Intent ของอินเทอร์เฟซได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างการไปยังส่วนต่างๆ ที่ทำตามได้ง่ายๆ
การทดสอบ
วิธีประเมินลำดับการส่งผ่านการเข้าถึงของแอปด้วยตนเองมีดังนี้
- เปิด TalkBack
- เปิดแอป
- ใช้ท่าทางสัมผัสการไปยังส่วนต่างๆ แบบเชิงเส้น เพื่อย้ายโฟกัสการเข้าถึงไปยังแต่ละองค์ประกอบบนหน้าจอ
- ตรวจสอบว่า TalkBack ย้ายโฟกัสผ่านองค์ประกอบบนหน้าจอตามลำดับเชิงตรรกะ และกล่าวถึงการแสดงแต่ละองค์ประกอบที่เคลื่อนผ่านอย่างเหมาะสม
- ตรวจสอบว่า TalkBack ย้ายโฟกัสไปข้างหน้าและข้างหลังผ่านองค์ประกอบบนหน้าจอในลักษณะที่สอดคล้องกัน โดยไม่คำนึงถึงทิศทางในการไปยังส่วนต่างๆ
เครื่องมือทดสอบอัตโนมัติของ Android สามารถตรวจพบปัญหาเกี่ยวกับการลำดับการส่งผ่านบางอย่างได้ ลองใช้เครื่องตรวจการเข้าถึงสำหรับ Android เพื่อทดสอบแอปในอุปกรณ์ด้วยตนเอง ในกรณีของการทดสอบอัตโนมัติ ให้เปิดการตรวจสอบการเข้าถึงใน Espresso และ Robolectric