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

บทบาทของอรรถศาสตร์ในการนำทางหน้าเว็บ

อลิซ บ็อกฮอลล์
อลิซ บ็อกซ์ฮอลล์
เดฟ แกช
เดฟ แกช
เมกกิน เคียร์นี่
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>

สำหรับแอปพลิเคชันที่ซับซ้อน วิธีนี้เป็นวิธีที่ดีในการรองรับส่วนหัวเมื่อการออกแบบภาพไม่จำเป็นต้องมีหรือไม่มีพื้นที่สำหรับส่วนหัวที่มองเห็นได้

ตัวเลือกการนำทางอื่นๆ

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

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

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

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

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

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

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

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

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

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

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