บทบาทของความหมายในการนําทางหน้าเว็บ
คุณได้ทราบเกี่ยวกับความสามารถในการใช้งาน ความหมาย และวิธีที่เทคโนโลยีความช่วยเหลือพิเศษใช้ลำดับความสำคัญการช่วยเหลือพิเศษเพื่อสร้างประสบการณ์การใช้งานทางเลือกให้แก่ผู้ใช้ คุณจะเห็นว่าการเขียน HTML ที่สื่อความหมายและชัดเจนช่วยให้การเข้าถึงได้ง่ายขึ้นมาก เนื่องจากองค์ประกอบมาตรฐานจำนวนมากมีทั้งความหมายและลักษณะการทำงานที่รองรับในตัว
ในบทนี้ เราจะพูดถึงความหมายที่ไม่ค่อยชัดเจนแต่สำคัญมากสำหรับผู้ใช้โปรแกรมอ่านหน้าจอ โดยเฉพาะการนําทาง ในหน้าเว็บที่เรียบง่ายซึ่งมีการควบคุมจำนวนมากแต่มีเนื้อหาไม่มากนัก คุณจะสแกนหน้าเว็บเพื่อค้นหาสิ่งที่ต้องการได้อย่างง่ายดาย แต่สำหรับหน้าเว็บที่มีเนื้อหามาก เช่น รายการใน Wikipedia หรือผู้รวบรวมข่าว การอ่านทุกอย่างจากบนลงล่างนั้นไม่สามารถทำได้จริง คุณจึงต้องมีวิธีไปยังส่วนต่างๆ ของเนื้อหาได้อย่างมีประสิทธิภาพ
นักพัฒนาซอฟต์แวร์มักเข้าใจผิดว่าโปรแกรมอ่านหน้าจอใช้งานยากและช้า หรือคิดว่าทุกอย่างบนหน้าจอต้องโฟกัสได้เพื่อให้โปรแกรมอ่านหน้าจอพบ แต่มักไม่ใช่เช่นนั้น
ผู้ใช้โปรแกรมอ่านหน้าจอมักใช้รายการส่วนหัวเพื่อค้นหาข้อมูล โปรแกรมอ่านหน้าจอส่วนใหญ่มีวิธีแยกและสแกนรายการส่วนหัวของหน้าเว็บได้ง่ายๆ ซึ่งเป็นฟีเจอร์สําคัญที่เรียกว่า โรเตอร์ มาดูกันว่าเราจะใช้ส่วนหัว HTML อย่างมีประสิทธิภาพเพื่อรองรับฟีเจอร์นี้ได้อย่างไร
การใช้ส่วนหัวอย่างมีประสิทธิภาพ
ก่อนอื่น เราขอย้ำประเด็นก่อนหน้านี้ว่าลําดับ DOM มีความสำคัญ ไม่ใช่แค่สําหรับลําดับโฟกัส แต่สําหรับลําดับของโปรแกรมอ่านหน้าจอด้วย เมื่อทดสอบโปรแกรมอ่านหน้าจอ เช่น VoiceOver, NVDA, JAWS และ ChromeVox คุณจะเห็นรายการหัวข้อตามลําดับ DOM ไม่ใช่ลําดับภาพ
ซึ่งจะเป็นแบบนี้สําหรับโปรแกรมอ่านหน้าจอโดยทั่วไป เนื่องจากโปรแกรมอ่านหน้าจอโต้ตอบกับแผนผังการช่วยเหลือพิเศษ และแผนผังการช่วยเหลือพิเศษอิงตามแผนผัง DOM ดังนั้นลําดับที่โปรแกรมอ่านหน้าจอรับรู้จึงอิงตามลําดับ DOM โดยตรง ซึ่งหมายความว่าโครงสร้างส่วนหัวที่เหมาะสมมีความสำคัญมากกว่าที่เคย
ในหน้าเว็บส่วนใหญ่ที่มีโครงสร้างดี ระดับส่วนหัวจะซ้อนกันเพื่อระบุความสัมพันธ์แบบ "หลัก-ย่อย" ระหว่างบล็อกเนื้อหา รายการตรวจสอบของ WebAIM กล่าวถึงเทคนิคนี้ซ้ำๆ
- 1.3.1 พูดถึง "การใช้มาร์กอัปเชิงความหมายเพื่อกำหนดส่วนหัว"
- 2.4.1 กล่าวถึงโครงสร้างส่วนหัวเป็นเทคนิคในการข้ามกลุ่มเนื้อหา
- 2.4.6 discussed some details for writing useful headings
- 2.4.10 ระบุว่า "เนื้อหาแต่ละส่วนมีการระบุโดยใช้ส่วนหัวตามความเหมาะสม"
หัวเรื่องไม่จำเป็นต้องแสดงบนหน้าจอทั้งหมด ตัวอย่างเช่น Wikipedia ใช้เทคนิคที่จงใจวางส่วนหัวบางส่วนไว้นอกหน้าจอเพื่อให้เข้าถึงได้เฉพาะโปรแกรมอ่านหน้าจอและเทคโนโลยีความช่วยเหลือพิเศษอื่นๆ
<style>
.sr-only {
position:absolute;
left:-10000px;
top:auto;
width:1px;
height:1px;
overflow:hidden;
}
</style>
<h2 class="sr-only">This heading is offscreen.</h2>
สําหรับแอปพลิเคชันที่ซับซ้อน วิธีนี้อาจเป็นวิธีที่ดีในการรองรับส่วนหัวเมื่อการออกแบบภาพไม่จําเป็นหรือมีพื้นที่สําหรับส่วนหัวที่มองเห็นได้
ตัวเลือกการไปยังส่วนต่างๆ อื่นๆ
แม้ว่าหน้าเว็บที่มีส่วนหัวที่ดีจะช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอไปยังส่วนต่างๆ ได้ แต่ก็มีองค์ประกอบอื่นๆ ที่ผู้ใช้สามารถใช้เพื่อไปยังส่วนต่างๆ ของหน้าเว็บได้ เช่น ลิงก์ ตัวควบคุมแบบฟอร์ม และจุดสังเกต
ผู้อ่านสามารถใช้ฟีเจอร์โรเตอร์ของโปรแกรมอ่านหน้าจอ (วิธีแยกและสแกนรายการส่วนหัวของหน้าเว็บอย่างง่ายดาย) เพื่อเข้าถึงรายการลิงก์ในหน้าเว็บ บางครั้งอาจมีลิงก์จำนวนมาก เช่น ในวิกิ ผู้อ่านจึงอาจค้นหาคำภายในลิงก์ ซึ่งจะจํากัด Hit ไว้ที่ลิงก์ที่มีคํานั้นจริงๆ แทนที่จะเป็นทุกครั้งที่คํานั้นปรากฏในหน้า
ฟีเจอร์นี้จะมีประโยชน์ก็ต่อเมื่อโปรแกรมอ่านหน้าจอพบลิงก์และข้อความลิงก์มีความหมาย ตัวอย่างเช่น รูปแบบที่พบบ่อยซึ่งทําให้ค้นหาลิงก์ได้ยากมีดังนี้
- แท็กแอตทริบิวต์ที่ไม่มีแอตทริบิวต์
href
เป้าหมายลิงก์เหล่านี้มักใช้ในแอปพลิเคชันหน้าเดียว ซึ่งจะทำให้เกิดปัญหากับโปรแกรมอ่านหน้าจอ อ่านเพิ่มเติมได้ในบทความนี้เกี่ยวกับแอปหน้าเดียว - ปุ่มที่ใช้กับลิงก์ ซึ่งทำให้โปรแกรมอ่านหน้าจอตีความเนื้อหาเป็นลิงก์และปุ่มจะใช้งานไม่ได้ ในกรณีเหล่านี้ ให้แทนที่แท็กแอตทริบิวต์ด้วยปุ่มจริงและจัดสไตล์ให้เหมาะสม
- รูปภาพที่ใช้เป็นเนื้อหาของลิงก์ บางครั้งรูปภาพที่ลิงก์ซึ่งจําเป็นอาจใช้ไม่ได้กับโปรแกรมอ่านหน้าจอ ตรวจสอบว่ารูปภาพมีข้อความแอตทริบิวต์
alt
เพื่อให้มั่นใจว่าลิงก์จะแสดงในเทคโนโลยีความช่วยเหลือพิเศษอย่างถูกต้อง
ข้อความลิงก์ที่ไม่ดีก็เป็นอีกปัญหาหนึ่ง ข้อความที่คลิกได้ เช่น "ดูข้อมูลเพิ่มเติม" หรือ "คลิกที่นี่" ไม่ได้ให้ข้อมูลเชิงความหมายเกี่ยวกับปลายทางของลิงก์ แต่ให้ใช้ข้อความที่สื่อความหมาย เช่น "ดูข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบที่ตอบสนอง" หรือ "ดูบทแนะนำเกี่ยวกับ Canvas นี้" เพื่อช่วยโปรแกรมอ่านหน้าจอให้บริบทที่มีความหมายเกี่ยวกับลิงก์
โรเตอร์ยังดึงข้อมูลรายการการควบคุมแบบฟอร์มได้ด้วย รายการนี้ช่วยให้ผู้อ่านค้นหารายการที่ต้องการและไปยังรายการนั้นๆ ได้โดยตรง
ข้อผิดพลาดที่พบบ่อยที่โปรแกรมอ่านหน้าจอทำคือเรื่องการออกเสียง เช่น โปรแกรมอ่านหน้าจออาจออกเสียง "Udacity" เป็น "oo-dacity" หรืออ่านหมายเลขโทรศัพท์เป็นจำนวนเต็มขนาดใหญ่ หรืออ่านข้อความตัวพิมพ์ใหญ่ราวกับว่าเป็นอักษรย่อ สิ่งที่น่าสนใจคือผู้ใช้โปรแกรมอ่านหน้าจอค่อนข้างคุ้นเคยกับลักษณะการทำงานนี้และรับทราบข้อจำกัดดังกล่าว
นักพัฒนาซอฟต์แวร์บางรายพยายามปรับปรุงสถานการณ์นี้โดยจัดเตรียมข้อความที่สะกดตามวิธีออกเสียงสำหรับโปรแกรมอ่านหน้าจอเท่านั้น กฎง่ายๆ สำหรับการสะกดแบบออกเสียงมีดังนี้ อย่าทำ เพราะจะทำให้ปัญหาแย่ลง ตัวอย่างเช่น หากผู้ใช้ใช้จอแสดงผลอักษรเบรลล์ ระบบจะสะกดคําไม่ถูกต้อง ซึ่งทําให้เกิดความสับสนมากขึ้น โปรแกรมอ่านหน้าจอจะสะกดคำออกเสียงได้ ดังนั้นผู้อ่านจึงควบคุมประสบการณ์การใช้งานและตัดสินใจได้ว่าเมื่อใดจึงจำเป็นต้องใช้ฟีเจอร์นี้
ผู้อ่านสามารถใช้โรเตอร์เพื่อดูรายการจุดสังเกต รายการนี้ช่วยให้ผู้อ่านค้นหาเนื้อหาหลักและชุดจุดสังเกตในการนําทางที่ได้จากองค์ประกอบจุดสังเกต HTML
HTML5 ได้เปิดตัวองค์ประกอบใหม่บางรายการที่จะช่วยกำหนดโครงสร้างเชิงความหมายของหน้าเว็บ ซึ่งรวมถึง header
, footer
, nav
, article
, section
, main
และ aside
องค์ประกอบเหล่านี้ให้เบาะแสเชิงโครงสร้างในหน้าเว็บโดยเฉพาะโดยไม่บังคับให้ใช้การจัดรูปแบบในตัว (ซึ่งคุณควรทำด้วย CSS อยู่แล้ว)
องค์ประกอบโครงสร้างเชิงความหมายจะแทนที่บล็อก div
ซ้ำๆ หลายรายการ และแสดงโครงสร้างหน้าเว็บได้ชัดเจนขึ้นและเข้าใจง่ายขึ้นสำหรับทั้งผู้เขียนและผู้อ่าน