ผู้คนมากกว่าหนึ่งพันล้านคนทั่วโลกมีชีวิตอยู่กับความพิการในรูปแบบใดรูปแบบหนึ่ง คิดเป็นประมาณ 15% ของประชากรโลก ในจำนวนนี้มีผู้ที่ตาบอดหรือมีสายตาเลือนราง ผู้ที่หูหนวกหรือหูตึง ผู้ที่มีความบกพร่องทางการเคลื่อนไหว ความแตกต่างทางสติปัญญา หรือสภาวะชั่วคราวเช่นแขนหักหรือไมเกรน
เมื่อเราสร้างเว็บไซต์โดยไม่คำนึงถึงความเป็นจริงเหล่านี้ เราไม่ได้เพียงแค่สร้างความไม่สะดวก เรากำลังปิดกั้นผู้คนจากข้อมูล บริการ และโอกาสที่คนอื่นมองว่าเป็นเรื่องปกติ การเข้าถึงไม่ใช่ฟีเจอร์ แต่เป็นความรับผิดชอบ
การเข้าถึงเว็บหมายความว่าอย่างไร
การเข้าถึงเว็บหมายถึงการออกแบบและพัฒนาเว็บไซต์เพื่อให้ผู้พิการสามารถรับรู้ เข้าใจ นำทาง และโต้ตอบกับเว็บไซต์ได้ ยังหมายความว่าพวกเขาสามารถมีส่วนร่วมกับเว็บได้ด้วย
สิ่งนี้ไปไกลกว่าโปรแกรมอ่านหน้าจอ การเข้าถึงครอบคลุม:
- การมองเห็น: ตาบอด สายตาเลือนราง ตาบอดสี
- การได้ยิน: หูหนวก หูตึง
- การเคลื่อนไหว: การควบคุมกล้ามเนื้อมัดเล็กจำกัด อาการสั่น อัมพาต
- สติปัญญา: ภาวะดิสเล็กเซีย สมาธิสั้น ปัญหาด้านความจำ ความบกพร่องทางการเรียนรู้
- ชั่วคราวและตามสถานการณ์: ข้อมือหัก แสงแดดจ้าบนหน้าจอ สภาพแวดล้อมที่มีเสียงดัง อินเทอร์เน็ตช้า
ประเด็นสำคัญ: การออกแบบที่เข้าถึงได้เป็นประโยชน์ต่อทุกคน คำบรรยายช่วยในสถานที่ที่มีเสียงดัง ความเปรียบต่างสูงช่วยภายใต้แสงจ้า การนำทางด้วยคีย์บอร์ดช่วยผู้ใช้ขั้นสูง ข้อความที่ชัดเจนช่วยผู้ที่ไม่ใช่เจ้าของภาษา การเข้าถึงไม่ใช่โหมดพิเศษ — เป็นการออกแบบที่ดี
มาตรฐาน WCAG
แนวทางการเข้าถึงเนื้อหาเว็บ (WCAG) เป็นมาตรฐานสากลสำหรับการเข้าถึงเว็บ เผยแพร่โดย W3C เวอร์ชันปัจจุบันคือ WCAG 2.2 จัดระบบรอบหลักการสี่ประการที่รู้จักกันในตัวย่อ POUR:
รับรู้ได้ (Perceivable)
ข้อมูลต้องนำเสนอในรูปแบบที่ผู้ใช้ทุกคนสามารถรับรู้ได้
- ข้อความทดแทน: รูปภาพทุกรูปต้องมีแอตทริบิวต์
altที่อธิบายเนื้อหา รูปภาพตกแต่งใช้alt="" - คำบรรยายและการถอดเสียง: เนื้อหาวิดีโอต้องมีคำบรรยาย เนื้อหาเสียงต้องมีการถอดเสียง
- โครงสร้างที่ปรับได้: เนื้อหาต้องมีความหมายเมื่อลบสไตล์ออก ใช้ HTML เชิงความหมาย (
<h1>,<nav>,<main>,<article>) - เนื้อหาที่แยกแยะได้: ความเปรียบต่างของสีเพียงพอ ข้อความปรับขนาดได้ ไม่มีข้อมูลที่ส่งผ่านสีเพียงอย่างเดียว
ใช้งานได้ (Operable)
ผู้ใช้ต้องสามารถใช้งานอินเทอร์เฟซได้
- เข้าถึงได้ด้วยคีย์บอร์ด: ทุกองค์ประกอบที่โต้ตอบได้ต้องเข้าถึงและใช้งานได้ด้วยคีย์บอร์ดเท่านั้น ไม่มีกับดักเมาส์
- เวลาเพียงพอ: หากเนื้อหามีข้อจำกัดด้านเวลา ผู้ใช้ต้องสามารถขยายหรือปิดการใช้งานได้
- ไม่มีตัวกระตุ้นอาการชัก: หลีกเลี่ยงเนื้อหาที่กะพริบมากกว่าสามครั้งต่อวินาที
- นำทางได้: ชื่อหน้าชัดเจน โครงสร้างหัวข้อตามลำดับ ลิงก์ข้ามการนำทาง ตัวบ่งชี้โฟกัสที่มองเห็นได้
เข้าใจได้ (Understandable)
เนื้อหาและอินเทอร์เฟซต้องเข้าใจได้
- ข้อความอ่านง่าย: ระบุภาษาของหน้า (แอตทริบิวต์
lang) ใช้ภาษาที่ชัดเจนและเรียบง่ายเมื่อทำได้ - พฤติกรรมที่คาดเดาได้: การนำทางต้องสม่ำเสมอ หน้าต้องไม่เปลี่ยนบริบทโดยไม่คาดคิด
- ช่วยเหลือการป้อนข้อมูล: ติดป้ายกำกับฟิลด์ฟอร์มอย่างชัดเจน ให้ข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์อธิบายว่าเกิดอะไรขึ้นและจะแก้ไขอย่างไร
แข็งแกร่ง (Robust)
เนื้อหาต้องแข็งแกร่งพอที่จะทำงานร่วมกับเทคโนโลยีปัจจุบันและอนาคต
- HTML ที่ถูกต้อง: มาร์กอัปเชิงความหมายที่ถูกต้องซึ่งเทคโนโลยีช่วยเหลือสามารถตีความได้อย่างน่าเชื่อถือ
- ชื่อ บทบาท ค่า: คอมโพเนนต์ที่กำหนดเองต้องเปิดเผยวัตถุประสงค์ต่อ API การเข้าถึง (ผ่าน ARIA เมื่อจำเป็น)
ระดับความสอดคล้อง
WCAG กำหนดสามระดับ:
| ระดับ | ความหมาย | ตัวอย่าง |
|---|---|---|
| A | การเข้าถึงขั้นต่ำ | รูปภาพมีข้อความ alt หน้ามีชื่อเรื่อง |
| AA | เป้าหมายมาตรฐานสำหรับเว็บไซต์ส่วนใหญ่ | อัตราส่วนความเปรียบต่างอย่างน้อย 4.5:1 สำหรับข้อความปกติ |
| AAA | ระดับสูงสุด ไม่สามารถทำได้เสมอไป | อัตราส่วนความเปรียบต่าง 7:1 ภาษามือสำหรับวิดีโอทั้งหมด |
กฎหมายส่วนใหญ่ทั่วโลกกำหนดให้ปฏิบัติตาม ระดับ AA นี่คือระดับที่คุณควรตั้งเป้า
อุปสรรคที่พบบ่อยและวิธีแก้ไข
ข้อความ alt ที่ขาดหายไปบนรูปภาพ
ปัญหา: ผู้ใช้โปรแกรมอ่านหน้าจอได้ยิน "รูปภาพ" หรือไม่ได้ยินอะไรเลย
วิธีแก้ไข: เพิ่มข้อความ alt ที่อธิบายให้กับรูปภาพที่ให้ข้อมูลทุกรูป สำหรับรูปภาพตกแต่ง ใช้ alt="" เพื่อให้โปรแกรมอ่านหน้าจอข้ามไป
<!-- Good -->
<img
src="chart.png"
alt="Bar chart showing a 40% increase in sales from January to June 2025"
/>
<!-- Decorative -->
<img src="divider.svg" alt="" />
ความเปรียบต่างของสีไม่เพียงพอ
ปัญหา: ผู้ที่มีสายตาเลือนรางหรือตาบอดสีไม่สามารถอ่านข้อความได้
วิธีแก้ไข: ให้แน่ใจว่ามีอัตราส่วนความเปรียบต่างขั้นต่ำ 4.5:1 สำหรับข้อความปกติ และ 3:1 สำหรับข้อความขนาดใหญ่ (18px+ หรือ 14px ตัวหนา) ใช้เครื่องมือตรวจสอบความเปรียบต่างเพื่อยืนยันชุดสีของคุณ
คุณสามารถตรวจสอบความเปรียบต่างของสีได้ทันทีด้วยเครื่องมือ ตัวตรวจสอบความเปรียบต่าง ของเรา แสดงผลลัพธ์ผ่าน/ไม่ผ่าน WCAG AA และ AAA ทันที
ป้ายกำกับฟอร์มที่ขาดหายไป
ปัญหา: ผู้ใช้โปรแกรมอ่านหน้าจอไม่ทราบว่าฟิลด์ฟอร์มมีไว้เพื่ออะไร
วิธีแก้ไข: ทุกฟิลด์ป้อนข้อมูลต้องมีองค์ประกอบ <label> ที่มองเห็นได้ เชื่อมโยงผ่านแอตทริบิวต์ for
<!-- Good -->
<label for="email">Email address</label>
<input type="email" id="email" name="email" />
<!-- Bad: placeholder is not a label -->
<input type="email" placeholder="Email address" />
ไม่มีการนำทางด้วยคีย์บอร์ด
ปัญหา: ผู้ใช้ที่ไม่สามารถใช้เมาส์ได้ติดอยู่
วิธีแก้ไข: ใช้องค์ประกอบ HTML ดั้งเดิม (<button>, <a>, <select>) ซึ่งเข้าถึงได้ด้วยคีย์บอร์ดตามค่าเริ่มต้น หากคุณสร้างคอมโพเนนต์แบบกำหนดเอง ให้แน่ใจว่าสามารถโฟกัสได้และตอบสนองต่อเหตุการณ์คีย์บอร์ด อย่าลบเส้นขอบโฟกัสโดยไม่มีทางเลือกอื่น
โครงสร้างหน้าที่ขาดหายไป
ปัญหา: ผู้ใช้โปรแกรมอ่านหน้าจอไม่สามารถนำทางได้อย่างมีประสิทธิภาพ
วิธีแก้ไข: ใช้ HTML เชิงความหมาย <h1> หนึ่งตัวต่อหน้า ลำดับหัวข้อตามตรรกะ (ไม่ข้ามระดับ) จุดสังเกต (<nav>, <main>, <footer>)
สื่อที่เล่นอัตโนมัติ
ปัญหา: เสียงที่ไม่คาดคิดรบกวนผู้ใช้โปรแกรมอ่านหน้าจอ วิดีโอที่เล่นอัตโนมัติอาจกระตุ้นอาการชักหรือทำให้เกิดความทุกข์
วิธีแก้ไข: อย่าเล่นเสียงอัตโนมัติ หากวิดีโอเล่นอัตโนมัติ ให้แน่ใจว่าปิดเสียงตามค่าเริ่มต้นและมีตัวควบคุมการหยุดชั่วคราว
สีไม่เพียงพอ
อย่าพึ่งพาสีเพียงอย่างเดียวในการสื่อสารข้อมูล พิจารณา:
- ฟิลด์ฟอร์มที่มีขอบสีแดงสำหรับข้อผิดพลาดยังต้องมีไอคอนหรือข้อความแสดงข้อผิดพลาด
- แผนภูมิที่มีเส้นสียังต้องมีรูปแบบ ป้ายกำกับ หรือคำอธิบาย
- ลิงก์ในข้อความต้องมีขีดเส้นใต้หรือสัญญาณภาพอื่น ไม่ใช่แค่เปลี่ยนสี
ประมาณ 8% ของผู้ชายและ 0.5% ของผู้หญิง มีความบกพร่องในการมองเห็นสีบางรูปแบบ การออกแบบโดยคำนึงถึงสิ่งนี้ไม่ใช่กรณีพิเศษ — เป็นการมีส่วนร่วมขั้นพื้นฐาน
การทดสอบการเข้าถึง
การทดสอบอัตโนมัติ
เครื่องมืออัตโนมัติตรวจจับปัญหาการเข้าถึงได้ประมาณ 30-40% เป็นก้าวแรกที่ดี แต่ไม่ใช่โซลูชันที่สมบูรณ์
- axe DevTools (ส่วนขยายเบราว์เซอร์) — สแกนหน้าและรายงานการละเมิด WCAG
- Lighthouse (ในตัว Chrome DevTools) — รวมการตรวจสอบการเข้าถึง
- WAVE (เครื่องมือเว็บ) — การซ้อนทับภาพแสดงปัญหา
การทดสอบด้วยตนเอง
ปัญหาการเข้าถึงจำนวนมากต้องการการตัดสินของมนุษย์:
- ทดสอบคีย์บอร์ด: ถอดเมาส์ออกและนำทางทั่วทั้งเว็บไซต์ด้วย Tab, Enter, Escape และปุ่มลูกศร คุณเข้าถึงทุกอย่างได้หรือไม่? ลำดับโฟกัสสมเหตุสมผลหรือไม่?
- ทดสอบโปรแกรมอ่านหน้าจอ: ลองใช้ VoiceOver (Mac), NVDA (Windows, ฟรี) หรือ TalkBack (Android) เนื้อหาสมเหตุสมผลเมื่ออ่านออกเสียงหรือไม่?
- ทดสอบการซูม: ซูมเบราว์เซอร์เป็น 200% เลย์เอาต์ยังทำงานอยู่หรือไม่? มีเนื้อหาถูกตัดหรือซ้อนทับกันหรือไม่?
- ลดการเคลื่อนไหว: เปิดใช้ "ลดการเคลื่อนไหว" ในการตั้งค่าระบบปฏิบัติการ แอนิเมชันเคารพการตั้งค่านี้หรือไม่?
การทดสอบกับผู้ใช้
ข้อเสนอแนะที่มีค่าที่สุดมาจากผู้ที่ใช้เทคโนโลยีช่วยเหลือจริงในชีวิตประจำวัน หากงบประมาณของคุณอนุญาต ให้รวมผู้ใช้ที่มีความพิการไว้ในกระบวนการทดสอบ
การเข้าถึงเป็นสเปกตรัม ไม่ใช่ช่องทำเครื่องหมาย
การเข้าถึงไม่ใช่โปรเจกต์ครั้งเดียวที่มีเส้นชัย เป็นการปฏิบัติอย่างต่อเนื่อง เว็บไซต์เปลี่ยนแปลง เนื้อหาถูกเพิ่ม และอุปสรรคใหม่สามารถปรากฏขึ้นกับทุกการอัปเดต
เป้าหมายไม่ใช่ความสมบูรณ์แบบ เป้าหมายคือ การปรับปรุงอย่างต่อเนื่อง และความใส่ใจอย่างจริงใจต่อผู้คนที่ใช้สิ่งที่คุณสร้าง เริ่มต้นด้วยการเปลี่ยนแปลงที่ส่งผลกระทบมากที่สุด — ความเปรียบต่างของสี ข้อความ alt การนำทางด้วยคีย์บอร์ด ป้ายกำกับฟอร์ม — และสร้างต่อจากตรงนั้น
ทุกอุปสรรคที่คุณขจัดคือประตูที่คุณเปิด
รายการตรวจสอบด่วน
- รูปภาพทั้งหมดมีข้อความ
altที่มีความหมาย (หรือalt=""หากเป็นรูปตกแต่ง) - ความเปรียบต่างของสีเป็นไปตาม WCAG AA (4.5:1 สำหรับข้อความ, 3:1 สำหรับข้อความขนาดใหญ่)
- ฟิลด์ฟอร์มทั้งหมดมีป้ายกำกับที่มองเห็นได้
- เว็บไซต์สามารถนำทางได้ทั้งหมดด้วยคีย์บอร์ด
- หัวข้อเป็นไปตามลำดับชั้นที่สมเหตุสมผล
- ตัวบ่งชี้โฟกัสมองเห็นได้
- ภาษาของหน้าถูกกำหนด (แอตทริบิวต์
langบน<html>) - ไม่มีข้อมูลที่สื่อสารด้วยสีเพียงอย่างเดียว
- วิดีโอมีคำบรรยาย
- แอนิเมชันเคารพ
prefers-reduced-motion
