

เว็บที่เปลี่ยนหน้าโดยโหลดข้อมูลเฉพาะส่วนช่วยให้การนำทางต่อเนื่องขึ้นได้ แต่ระหว่างที่เนื้อหาถูกแทนใหม่ คนที่ใช้ keyboard ยังต้องรู้ว่าตัวเองอยู่ตรงไหนและจะทำงานต่อจากจุดใด ถ้า focus ค้างที่ลิงก์เก่าหรือหายไปหลังองค์ประกอบถูกถอดออก การเปลี่ยนหน้าที่ดูรวดเร็วก็อาจทำให้เดินต่อยากขึ้น
คนใช้เมาส์มักคลิกจุดใหม่จากสิ่งที่เห็นได้ทันที ส่วนคนที่กด Tab หรือใช้เครื่องมือช่วยอ่านอาศัยตำแหน่งและลำดับอีกแบบ การเปลี่ยนภาพกลางหน้าจอจึงยังไม่ได้บอกสถานะให้ทุกช่องทางใช้งานรับรู้เหมือนกัน
จึงควรออกแบบการนำทางพร้อมเรื่อง focus ครับ โดยแยกก่อนว่ากำลังเปิดหน้าใหม่ เปลี่ยนรายการย่อยในหน้า หรือเปิดส่วนชั่วคราว เพราะการย้าย focus ที่เหมาะกับกรณีหนึ่งอาจไปรบกวนอีกกรณีได้
ตำแหน่ง scroll กับ keyboard focus ไม่จำเป็นต้องเป็นจุดเดียวกัน การเลื่อนเนื้อหาไปด้านบนไม่ได้รับรองว่าปุ่มหรือองค์ประกอบที่รับ keyboard เปลี่ยนตามไปด้วย และการเห็นหน้าบทความใหม่ก็ยังอาจเหลือ focus ที่ส่วน navigation เดิมอยู่ได้
เมื่อองค์ประกอบที่มี focus ถูกลบออกระหว่างเปลี่ยนหน้า ต้องตรวจว่า browser กับโค้ดที่ใช้อยู่จัดสถานะต่ออย่างไร ไม่อนุมานว่าทุก framework คืนจุดเริ่มที่คนเข้าใจได้เหมือนกันโดยไม่ทดสอบเส้นทางจริง

Focus order ควรรักษาความหมายและวิธีใช้งานของหน้า ลำดับที่เห็นบนจอกับลำดับที่เดินด้วย keyboard อาจต่างกันได้ในบางรูปแบบ แต่ต้องไม่ทำให้ความสัมพันธ์สับสนหรือทำงานต่อไม่ได้ตามจุดหมาย ไม่แก้ด้วยการเรียง tabindex บวกจำนวนมากเพื่อบังคับทุกตำแหน่งโดยไม่ดูโครง DOM
สิ่งที่รับ focus ควรมีตัวบอกตำแหน่งที่มองเห็นได้ตามโหมดการใช้งานด้วย การเอา outline ออกทั้งหมดเพื่อให้หน้าดูเรียบจะตัดข้อมูลสำคัญของคนที่ใช้ keyboard หากออกแบบ indicator ใหม่ต้องตรวจให้ยังมองเห็นจริงในพื้นหลังที่ใช้อยู่
กรณีเปิดบทความใหม่ คนอาจคาดว่าจะเริ่มรับข้อมูลของหน้าที่ไปถึง เช่น ชื่อหน้าและส่วนเนื้อหาหลัก จึงควรมีวิธีทำให้การเปลี่ยนปลายทางรับรู้ได้และมีจุดเริ่มต่อที่เหมาะสมตามรูปแบบแอปกับเครื่องมือช่วยอ่านที่รองรับ
แต่ถ้าเพียงกดกรองรายการ การย้าย focus ไปบนสุดทุกครั้งอาจทำให้ต้องย้อนกลับมาหาช่องกรองซ้ำ ทั้งที่ยังอยู่ในงานเดิม อาจเหมาะที่จะรักษา focus ที่ตัวควบคุมแล้วแจ้งผลการเปลี่ยนข้อมูลตามรูปแบบที่เข้าถึงได้ แทนการถือว่าทุกการโหลดใหม่คือเปลี่ยนหน้าทั้งหมด
สำหรับการแบ่งหน้าในรายการ ต้องตกลงว่าหลังโหลดส่วนถัดไปจะพาไปต้นรายการใหม่ รักษาจุดควบคุม หรือแสดงผลต่อเนื่องอย่างไร แล้วตรวจว่าคนหาขอบเขตชุดข้อมูลใหม่ได้ ไม่เปลี่ยนจำนวนรายการเงียบๆ ขณะที่เขายังอ่านชุดเดิมอยู่
การตัดสินใจเหล่านี้ควรยึดงานของผู้ใช้และพฤติกรรมที่ทดสอบได้ ไม่ใช้การย้าย focus เป็นลูกเล่นเพื่อให้ดูตอบสนอง เพราะการแย่งจุดรับ keyboard ระหว่างคนกำลังพิมพ์หรือเลือกข้อมูลอาจทำให้เสียบริบทได้
ระหว่างโหลดข้อมูลใหม่ ควรให้รู้ว่างานยังดำเนินอยู่และป้องกันการส่งซ้ำตามความจำเป็น แต่ไม่ทำให้ focus ไปตกในจุดที่หายหรือถูกซ่อนจนเดินต่อไม่ได้ หากปุ่มถูกแทนที่ต้องมีแนวทางคงบริบทของการทำงานนั้น

ถ้าโหลดไม่สำเร็จ ต้องแสดงเหตุและทางทำต่อในจุดที่ค้นพบได้ เช่น ลองอีกครั้งหรือกลับไปข้อมูลเดิม พร้อมพิจารณาว่าจำเป็นต้องย้าย focus มาสรุปปัญหาหรือเพียงแจ้งสถานะในงานเดิม ขึ้นกับขนาดของการเปลี่ยนและรูปแบบหน้าจอ
การมีข้อความ error อยู่ใน DOM แต่คนที่ใช้งานไม่รู้ว่ามันเพิ่มเข้ามา ยังทำให้ตามงานไม่จบได้ จึงต้องออกแบบการแจ้งและจุดรับ focus ให้สอดคล้องกัน โดยไม่ประกาศข้อความซ้ำทุกครั้งที่ component render จนรบกวนการอ่าน
กรณี dialog หรือเมนูชั่วคราวก็ต้องตรวจทั้งการเข้า การออก และจุดที่กลับไปหลังปิด ไม่ให้ส่วนที่ซ่อนอยู่ยังรับ Tab หรือปิดส่วนชั่วคราวแล้วปล่อยผู้ใช้หลงอยู่คนละส่วนของหน้า
คนเปิดบทความจากรายการแล้วกลับมาอาจต้องการอยู่ใกล้รายการเดิมที่เลือก ไม่เริ่มทุกอย่างจากบนสุดเสมอไป แต่รายละเอียดขึ้นกับการนำทางและสถานะที่แอปเก็บไว้ ต้องตรวจการคืน scroll, focus และตัวกรองร่วมกัน
ถ้ารายการเปลี่ยนไปแล้ว เช่น บทความถูกย้ายหรือข้อมูลโหลดไม่ครบ ต้องมีทางกลับที่สมเหตุผลแทนการพยายาม focus ไปยัง node ที่ไม่มีอยู่ การเก็บเพียง index ของ item อาจพาไปคนละรายการเมื่อมีการเรียงใหม่ จึงควรอิงตัวตนที่เหมาะกับข้อมูล
การเปิดลิงก์ในแท็บใหม่กับการเปลี่ยนภายในแท็บเดิมก็เป็นคนละเส้นทางที่ควรตรวจ ไม่ทำให้การควบคุมมาตรฐานของลิงก์หายไปเพราะใช้ปุ่มหรือ div คลิกแทนทุกอย่าง การใช้ HTML ตามหน้าที่ช่วยให้ได้พฤติกรรมพื้นฐานที่คนคุ้นเคยมากขึ้น
ส่วนการอัปเดต title ของหน้าและโครง heading ควรตรงกับปลายทางที่แสดงด้วย เพื่อไม่ให้ focus ถูกจัดการเรียบร้อยแต่ชื่อกับเนื้อหาที่เครื่องมืออ่านยังบอกคนละหน้า
การทดสอบควรเริ่มจากรายการ ใช้ keyboard เลือกบทความ อ่านส่วนที่ต้องการ แล้วกลับมาเลือกอีกเรื่อง รวมถึงกรณีโหลดช้า โหลดผิดพลาด และเปลี่ยนตัวกรอง ต้องดูว่าทุกช่วงยังทราบตำแหน่งและมีทางทำงานต่อได้
ตรวจ indicator บนปุ่ม ลิงก์ และส่วนชั่วคราวภายใต้หน้าจอกับธีมที่รองรับ ไม่ดูเฉพาะปุ่มแรกของหน้า และหากมี screen reader ในชุดทดสอบ ให้บันทึกเครื่องมือกับ browser ที่ใช้และการเปลี่ยนหน้าที่ได้ลองจริง
ผลของเครื่องมือตรวจอัตโนมัติเป็นข้อมูลช่วยหาเงื่อนไขบางอย่าง แต่เส้นทางการนำทางที่มีหลาย state ยังต้องลองต่อเนื่องด้วยคน บทนี้เป็นแนวทางออกแบบและตรวจ ไม่ได้ระบุว่าเว็บ CommandEng ผ่านการตรวจ keyboard กับเครื่องมือทุกชุดแล้ว
การเปลี่ยนหน้าอย่างต่อเนื่องควรรักษาจุดเริ่มและทางเดินของคนใช้ keyboard ไปด้วย เมื่อแยกประเภทการอัปเดต ดูแล focus ที่มองเห็น และจัดทางกลับจากการโหลดหรือข้อผิดพลาด เราจะทำให้ความเร็วในการนำทางอยู่ร่วมกับความชัดเจนว่าตอนนี้อยู่ที่ไหนและทำอะไรต่อได้