ความหมายและการไปยังส่วนต่างๆ ของเนื้อหา

บทบาทของความหมายในการนําทางหน้าเว็บ

Alice Boxhall
Alice Boxhall
Dave Gash
Dave Gash
Meggin Kearney
Meggin Kearney

คุณได้ทราบเกี่ยวกับลักษณะที่นําไปใช้ได้ ความหมาย และวิธีที่เทคโนโลยีความช่วยเหลือพิเศษใช้ลําดับชั้นการช่วยเหลือพิเศษเพื่อสร้างประสบการณ์การใช้งานทางเลือกสําหรับผู้ใช้ คุณจะเห็นว่าการเขียน HTML ที่สื่อความหมายและชัดเจนช่วยให้การเข้าถึงได้ง่ายขึ้นมาก เนื่องจากองค์ประกอบมาตรฐานจำนวนมากมีทั้งความหมายและลักษณะการทำงานที่รองรับอยู่แล้ว

ในบทนี้ เราจะพูดถึงความหมายที่ไม่ค่อยชัดเจนแต่สำคัญมากสำหรับผู้ใช้โปรแกรมอ่านหน้าจอ โดยเฉพาะการนําทาง ในหน้าเว็บง่ายๆ ที่มีการควบคุมมากมาย แต่มีเนื้อหาไม่มากนัก คุณสามารถสแกนหน้าเพื่อหาสิ่งที่ต้องการได้ง่ายๆ แต่ในหน้าเว็บที่มีเนื้อหามากมาย เช่น รายการ Wikipedia หรือแหล่งรวบรวมข่าว จะไม่สามารถอ่านทุกอย่างตั้งแต่ด้านบนลงล่าง คุณจะต้องเข้าใจวิธีไปยังส่วนต่างๆ ของเนื้อหาได้อย่างมีประสิทธิภาพ

นักพัฒนาซอฟต์แวร์มักเข้าใจผิดว่าโปรแกรมอ่านหน้าจอใช้งานยากและช้า หรือคิดว่าทุกอย่างบนหน้าจอต้องโฟกัสได้เพื่อให้โปรแกรมอ่านหน้าจอพบ แต่มักไม่ใช่เช่นนั้น

ผู้ใช้โปรแกรมอ่านหน้าจอมักใช้รายการส่วนหัวเพื่อค้นหาข้อมูล โปรแกรมอ่านหน้าจอส่วนใหญ่มีวิธีแยกและสแกนรายการส่วนหัวของหน้าเว็บได้ง่ายๆ ซึ่งเป็นฟีเจอร์สําคัญที่เรียกว่า โรเตอร์ มาดูกันว่าเราจะใช้ส่วนหัว HTML อย่างมีประสิทธิภาพเพื่อรองรับฟีเจอร์นี้ได้อย่างไร

การใช้ส่วนหัวอย่างมีประสิทธิภาพ

ก่อนอื่น เราขอย้ำประเด็นก่อนหน้านี้ว่าลําดับ DOM มีความสำคัญ ไม่ใช่แค่สําหรับลําดับโฟกัส แต่สําหรับลําดับของโปรแกรมอ่านหน้าจอด้วย เมื่อทดสอบโปรแกรมอ่านหน้าจอ เช่น VoiceOver, NVDA, JAWS และ ChromeVox คุณจะเห็นรายการหัวข้อตามลําดับ DOM ไม่ใช่ลําดับภาพ

ในกรณีเช่นนี้สำหรับโปรแกรมอ่านหน้าจอโดยทั่วไป เนื่องจากโปรแกรมอ่านหน้าจอโต้ตอบกับแผนผังการช่วยเหลือพิเศษ และแผนผังการช่วยเหลือพิเศษอิงตามแผนผัง DOM ดังนั้นลําดับที่โปรแกรมอ่านหน้าจอรับรู้จึงอิงตามลําดับ DOM โดยตรง ซึ่งหมายความว่าโครงสร้างส่วนหัวที่เหมาะสมมีความสำคัญมากกว่าที่เคย

ในหน้าเว็บที่มีโครงสร้างดีส่วนใหญ่ ระดับส่วนหัวจะซ้อนกันอยู่เพื่อระบุความสัมพันธ์ระหว่างระดับบนสุดและระดับย่อยในการบล็อกเนื้อหาต่างๆ รายการตรวจสอบ WebAIM กล่าวถึงเทคนิคนี้ซ้ำๆ

  • 1.3.1 พูดถึง "การใช้มาร์กอัปเชิงความหมายเพื่อกำหนดส่วนหัว"
  • 2.4.1 พูดถึงโครงสร้างส่วนหัวว่าเป็นเทคนิคในการข้ามการบล็อกเนื้อหา
  • 2.4.6 กล่าวถึงรายละเอียดบางอย่างในการเขียนส่วนหัวที่เป็นประโยชน์
  • 2.4.10 ระบุว่า "แต่ละส่วนของเนื้อหามีการกำหนดโดยใช้ส่วนหัว ตามความเหมาะสม"

หัวเรื่องไม่จำเป็นต้องแสดงบนหน้าจอทั้งหมด ตัวอย่างเช่น วิกิพีเดียใช้เทคนิคที่จงใจวางส่วนหัวบางส่วนไว้นอกหน้าจอเพื่อทำให้เข้าถึงได้ด้วยโปรแกรมอ่านหน้าจอและเทคโนโลยีความช่วยเหลืออื่นๆ เท่านั้น

<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 ไว้ที่ลิงก์ที่มีคํานั้นจริงๆ แทนที่จะเป็นทุกครั้งที่คํานั้นปรากฏในหน้า

ฟีเจอร์นี้จะมีประโยชน์ก็ต่อเมื่อโปรแกรมอ่านหน้าจอพบลิงก์และข้อความลิงก์มีความหมาย ตัวอย่างเช่น ต่อไปนี้เป็นรูปแบบทั่วไปที่ทำให้ค้นหาลิงก์ได้ยาก

  • แท็ก Anchor ที่ไม่มีแอตทริบิวต์ href เป้าหมายลิงก์เหล่านี้มักใช้ในแอปพลิเคชันหน้าเดียว ซึ่งจะทำให้เกิดปัญหากับโปรแกรมอ่านหน้าจอ อ่านเพิ่มเติมได้ในบทความนี้เกี่ยวกับแอปหน้าเดียว
  • ปุ่มที่ใช้กับลิงก์ ซึ่งจะทำให้โปรแกรมอ่านหน้าจอตีความเนื้อหาเป็นลิงก์ และฟังก์ชันของปุ่มจะหายไป ในกรณีเหล่านี้ ให้แทนที่แท็กแอตทริบิวต์ด้วยปุ่มจริงและจัดสไตล์ให้เหมาะสม
  • รูปภาพที่ใช้เป็นเนื้อหาลิงก์ ในบางครั้ง รูปภาพที่ลิงก์ซึ่งจำเป็น อาจใช้กับโปรแกรมอ่านหน้าจอไม่ได้ ตรวจสอบว่ารูปภาพมีข้อความแอตทริบิวต์ alt เพื่อให้มั่นใจว่าลิงก์จะแสดงในเทคโนโลยีความช่วยเหลือพิเศษอย่างถูกต้อง

ข้อความลิงก์ที่ไม่ดีก็เป็นอีกปัญหาหนึ่ง ข้อความที่คลิกได้ เช่น "ดูข้อมูลเพิ่มเติม" หรือ "คลิกที่นี่" ไม่ได้ให้ข้อมูลเชิงความหมายเกี่ยวกับปลายทางของลิงก์ แต่ให้ใช้ข้อความอธิบาย เช่น "ดูข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบที่ตอบสนอง" หรือ "ดูบทแนะนำเกี่ยวกับ Canvas นี้" เพื่อช่วยโปรแกรมอ่านหน้าจอให้บริบทที่มีความหมายเกี่ยวกับลิงก์

โรเตอร์ยังดึงข้อมูลรายการการควบคุมแบบฟอร์มได้ด้วย รายการนี้ช่วยให้ผู้อ่านค้นหารายการที่ต้องการและไปยังรายการนั้นๆ ได้โดยตรง

ข้อผิดพลาดที่พบบ่อยที่โปรแกรมอ่านหน้าจอทำคือเรื่องการออกเสียง เช่น โปรแกรมอ่านหน้าจออาจออกเสียง "Udacity" เป็น "oo-dacity" หรืออ่านหมายเลขโทรศัพท์เป็นจำนวนเต็มขนาดใหญ่ หรืออ่านข้อความตัวพิมพ์ใหญ่ราวกับว่าเป็นอักษรย่อ สิ่งที่น่าสนใจคือผู้ใช้โปรแกรมอ่านหน้าจอค่อนข้างคุ้นเคยกับลักษณะการทำงานนี้และรับทราบข้อจำกัดดังกล่าว

นักพัฒนาซอฟต์แวร์บางรายพยายามปรับปรุงสถานการณ์นี้โดยจัดเตรียมข้อความที่สะกดตามวิธีออกเสียงสำหรับโปรแกรมอ่านหน้าจอเท่านั้น กฎง่ายๆ สำหรับการสะกดคำตามการออกเสียงมีดังนี้ อย่าทำมีแต่จะทำให้ปัญหาแย่ลง ตัวอย่างเช่น หากผู้ใช้ใช้เครื่องแสดงผลอักษรเบรลล์ ระบบจะสะกดคำไม่ถูกต้อง ซึ่งทำให้เกิดความสับสนมากขึ้น โปรแกรมอ่านหน้าจอช่วยให้สะกดคำแบบออกเสียงได้ ดังนั้นควรปล่อยให้ผู้อ่านควบคุมประสบการณ์การใช้งานของตนและตัดสินใจว่าต้องทำงานเมื่อใด

ผู้อ่านสามารถใช้โรเตอร์เพื่อดูรายการจุดสังเกต รายการนี้ช่วยให้ผู้อ่านค้นหาเนื้อหาหลักและชุดจุดสังเกตในการนําทางที่ได้จากองค์ประกอบจุดสังเกต HTML

HTML5 ได้แนะนำองค์ประกอบใหม่ที่ช่วยกำหนดโครงสร้างทางอรรถศาสตร์ของหน้าเว็บ ได้แก่ header, footer, nav, article, section, main และ aside องค์ประกอบเหล่านี้จะให้ข้อมูลเชิงโครงสร้างในหน้าเว็บอย่างเจาะจง โดยไม่ต้องบังคับใช้การจัดรูปแบบในตัว (ซึ่งคุณควรทำกับ CSS อยู่แล้ว)

องค์ประกอบโครงสร้างเชิงความหมายจะแทนที่บล็อก div ซ้ำๆ หลายรายการ และแสดงโครงสร้างหน้าเว็บได้ชัดเจนขึ้นและสื่อความหมายได้ดียิ่งขึ้นสำหรับทั้งผู้เขียนและผู้อ่าน