Kodokon kodokon.com

การเข้าถึง: alt, ลำดับชั้นของหัวข้อ และ ARIA

เชี่ยวชาญข้อความทางเลือก ลำดับชั้นของหัวข้อที่โปรแกรมอ่านหน้าจอนำทางได้จริง และการใช้ ARIA เฉพาะกรณีที่ HTML แบบเนทีฟทำไม่ได้

9 นาที · 3 คำถาม

เปิดบทเรียนนี้ใน Kodokon

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

HTML
<img src="sales-chart.png"
     alt="2025 sales: +18% in the last quarter">

<img src="divider-ornament.png" alt="">
alt ที่ให้ข้อมูลสำหรับเนื้อหา, alt ว่างสำหรับการตกแต่ง

งานที่สอง: ลำดับชั้นของหัวข้อ ผู้ใช้โปรแกรมอ่านหน้าจอส่วนใหญ่จะกระโดดจากหัวข้อหนึ่งไปอีกหัวข้อหนึ่งเพื่อสร้างแผนที่ในใจของหน้าเว็บ ดังนั้นโครงร่าง h1h2h3 ของคุณต้องสะท้อนโครงสร้างเชิงตรรกะของเนื้อหา ไม่ใช่ขนาดที่มองเห็นได้ตามที่คุณอยากได้ กฎที่ต่อรองไม่ได้สองข้อ: มี h1 เพียงหนึ่งเดียวต่อหน้า และไม่ข้ามระดับ (ไม่มี h4 อยู่ใต้ h2 โดยตรง) ถ้าหัวข้อดู "ใหญ่เกินไป" ให้แก้ใน CSS ไม่ใช่ลดระดับความหมายของมัน

HTML
<h1>Dashboard</h1>
<section>
  <h2>Statistics</h2>
  <h3>Monthly visits</h3>
  <h3>Conversion rate</h3>
</section>
<section>
  <h2>Exportable reports</h2>
</section>
โครงร่างหัวข้อที่ไม่มีการข้ามระดับ

ARIA จะสมเหตุสมผลเมื่อ HTML แบบเนทีฟไม่สามารถแสดงสถานะแบบไดนามิกได้ เช่น เมนูที่เปิดหรือปิด, พื้นที่ที่อัปเดตแบบสด, แท็บที่กำลังใช้งาน แอตทริบิวต์สำคัญคือ aria-expanded (สถานะเปิด/ปิด), aria-controls (ลิงก์ไปยังองค์ประกอบที่ถูกควบคุม) และ aria-live (การประกาศการอัปเดต) จำหลักการนี้ไว้: HTML แบบเนทีฟให้บทบาท ส่วน ARIA เติมเต็มสถานะและคุณสมบัติที่ JavaScript ของคุณเปลี่ยนแปลงไปตามเวลา

HTML
<button aria-expanded="false" aria-controls="menu">
  Menu
</button>
<ul id="menu" hidden>
  <li><a href="/profile">Profile</a></li>
  <li><a href="/settings">Settings</a></li>
</ul>
วิดเจ็ตแบบเปิดเผย: JS สลับ aria-expanded และ hidden

ทดสอบความรู้

ตรวจสอบว่าคุณจำประเด็นสำคัญของบทเรียนนี้ได้ครบถ้วน

  1. ควรจัดการกับรูปภาพที่ใช้เพื่อการตกแต่งล้วน ๆ อย่างไร?
    • ใส่ alt เชิงพรรณนาให้ เช่น alt="ornament"
    • ใส่แอตทริบิวต์ alt ว่างให้: alt=""
    • ลบแอตทริบิวต์ alt ออกทั้งหมด
    • ใช้ title แทน alt
  2. ใต้ h2 คุณต้องการหัวข้อย่อยที่ดูเรียบเนียนทางสายตา คุณจะทำอย่างไร?
    • ใช้ h5 เพราะมันเล็กกว่าโดยค่าเริ่มต้น
    • ใช้ h3 แล้วลดขนาดของมันใน CSS
    • ใช้ div ที่มีคลาสหัวข้อ
  3. เมื่อใดจึงเหมาะสมที่จะเพิ่มแอตทริบิวต์ ARIA?
    • บนทุกองค์ประกอบที่โต้ตอบได้ เผื่อไว้ก่อน
    • เมื่อไม่มีองค์ประกอบ HTML แบบเนทีฟใดแสดงบทบาทหรือสถานะที่ต้องการได้
    • เพื่อปรับปรุงอันดับการค้นหาของหน้าเว็บ