HTML
Accessibility
Alt Text
บทนี้สอนผู้เริ่มต้นให้เข้าใจว่า alt text คือข้อความทางเลือกของรูปภาพ ที่ช่วยสื่อความหมายของรูปเมื่อรูปไม่แสดงหรือเมื่อผู้ใช้ใช้เครื่องมืออ่านหน้าจอ พร้อมฝึกเขียน alt ที่สั้น ชัด และตรวจผ่าน Playground ได้จริง
1. หัวข้อนี้คืออะไร
alt text คือข้อความทางเลือกของรูปภาพที่ใส่ไว้ในแอตทริบิวต์ `alt` ของแท็ก `img` ข้อความนี้มีหน้าที่ช่วยบอกว่ารูปนั้นสื่ออะไร เมื่อรูปไม่แสดง โหลดไม่สำเร็จ หรือเมื่อผู้ใช้ใช้เครื่องมืออ่านหน้าจอ สิ่งสำคัญคือ alt ไม่ใช่ช่องที่ใส่อะไรก็ได้ แต่เป็นข้อความที่ควรสื่อความหมายของรูปอย่างเหมาะสม
2. ทำไมหัวข้อนี้สำคัญ
- ช่วยให้ผู้ใช้ที่มองไม่เห็นรูปยังเข้าใจว่ารูปนั้นสื่ออะไร
- ช่วยเมื่อรูปโหลดไม่สำเร็จ เพราะยังมีข้อความอธิบายแทนรูปอยู่
- ทำให้หน้าเว็บเข้าถึงได้ดีขึ้นสำหรับผู้ใช้ที่พึ่งพาเครื่องมืออ่านหน้าจอ
- ช่วยให้ทีมคิดถึงความหมายของรูป ไม่ใช่มองว่ารูปเป็นแค่ของตกแต่งเสมอไป
3. ตัวอย่างจากชีวิตจริง
ลองนึกถึงบทความเรียนออนไลน์ที่มีรูปอธิบายขั้นตอนสำคัญ ถ้าผู้อ่านมองไม่เห็นรูป แต่มี alt ที่ดี เขาก็ยังพอเข้าใจว่ารูปกำลังสื่ออะไร ในทางกลับกัน ถ้า alt เป็นแค่คำว่า "รูปภาพ" หรือไม่ใส่อะไรเลย ทั้งที่รูปนั้นมีความหมาย ผู้อ่านก็จะเสียข้อมูลสำคัญไป อีกกรณีหนึ่งคือรูปตกแต่งเล็ก ๆ เช่น ลายเส้นหรือไอคอนที่ไม่ได้เพิ่มความหมายให้เนื้อหา รูปแบบนี้อาจใช้ `alt=""` ได้เมื่อบริบทเหมาะสม
4. แนวคิดหลักที่ต้องเข้าใจ
- รูปที่มีความหมายควรมี alt ที่สื่อความหมายของรูปอย่างชัดเจน
- alt ที่ดีควรสั้น ชัด และตรงจุด ไม่ต้องเล่าเกินสิ่งที่รูปกำลังสื่อ
- ไม่ควรใส่คำอย่าง "รูปภาพของ..." ทุกครั้งโดยไม่จำเป็น เพราะมักไม่ได้เพิ่มประโยชน์
- ถ้ารูปเป็นเพียงของตกแต่งและไม่ได้เพิ่มความหมายให้เนื้อหา อาจใช้ `alt=""` ได้
- alt ที่ไม่ดีมักกว้างเกินไป คลุมเครือ หรือไม่เกี่ยวกับสิ่งที่รูปกำลังสื่อ
- การเขียน alt ควรคิดจากบทบาทของรูปในหน้านั้น ไม่ใช่คิดจากชื่อไฟล์หรือสิ่งที่คนสร้างรูปอยากเล่า
5. การทำงานทีละขั้นตอน
- 1) ดูก่อนว่ารูปนั้นมีความหมายต่อเนื้อหาหรือไม่
- 2) ถ้ามีความหมาย ให้เขียน alt ที่สรุปใจความของรูปแบบสั้นและชัด
- 3) ถ้ารูปเป็นของตกแต่งล้วน ๆ และไม่เพิ่มความหมาย ให้พิจารณาใช้ `alt=""`
- 4) ตรวจว่า alt ไม่กว้างเกินไป และไม่ยัดคำที่ไม่จำเป็นอย่าง "รูปภาพของ..." ทุกครั้ง
- 5) ลองถามตัวเองว่า ถ้าไม่เห็นรูป ผู้อ่านจะเข้าใจจาก alt นี้ได้หรือไม่
6. ตัวอย่างเชิงเทคนิค / โค้ด
ตัวอย่างนี้แสดงให้เห็นทั้ง alt ที่ดี alt ที่ไม่ดี และ alt ว่างสำหรับรูปตกแต่ง เพื่อให้ผู้เริ่มต้นเห็นความต่างอย่างชัดเจน จุดสำคัญคือ alt ควรสะท้อนบทบาทของรูปในหน้า ไม่ใช่ใส่ข้อความเดิม ๆ ให้ครบเฉย ๆ
7. จุดที่ผู้เริ่มต้นมักสับสน
- คิดว่า alt คือช่องที่ต้องใส่ข้อความอะไรก็ได้ให้ครบ
- ใส่ alt กว้างเกินไป เช่น "รูปภาพ" หรือ "ภาพประกอบ" จนไม่ช่วยสื่อความหมายจริง
- เขียน alt ยาวเกินจำเป็นจนกลายเป็นอธิบายทุกอย่างแทนที่จะสรุปใจความ
- ใส่คำว่า "รูปภาพของ..." ทุกครั้งแม้ในกรณีที่ไม่จำเป็น
- ไม่แน่ใจว่าเมื่อไรควรใช้ alt ว่างสำหรับรูปตกแต่ง
8. เปรียบเทียบกับสิ่งที่ใกล้เคียง
| คู่เปรียบเทียบ | ความต่าง | ใช้เมื่อไร |
|---|---|---|
| alt ที่ดี vs alt ที่ไม่ดี | alt ที่ดีสั้น ชัด และบอกความหมายของรูป ส่วน alt ที่ไม่ดีคลุมเครือหรือกว้างเกินไป | เมื่อรูปมีความหมาย ควรเขียน alt ที่สื่อสารสิ่งสำคัญของรูปโดยตรง |
| alt ที่มีข้อความ vs `alt=""` | alt ที่มีข้อความใช้กับรูปที่มีความหมาย ส่วน alt ว่างใช้กับรูปตกแต่งที่ไม่เพิ่มข้อมูลให้เนื้อหา | พิจารณาจากบทบาทของรูปในหน้านั้น ไม่ใช่จากการเป็นรูปอย่างเดียว |
| "รูปภาพของ..." vs ข้อความที่เข้าประเด็นเลย | การขึ้นต้นว่า "รูปภาพของ..." มักไม่จำเป็น ส่วนการเข้าประเด็นเลยช่วยให้ alt กระชับกว่า | ถ้ารูปนั้นชัดอยู่แล้วว่าเป็นภาพ ให้บอกใจความของรูปตรง ๆ |
| ชื่อไฟล์รูป vs alt text | ชื่อไฟล์ใช้จัดการไฟล์ ส่วน alt ใช้สื่อความหมายของรูปต่อผู้ใช้ | อย่าใช้ชื่อไฟล์แทน alt เพราะมักไม่ช่วยให้คนเข้าใจเนื้อหารูป |
9. สรุปท้ายบทแบบจำง่าย
- alt text คือข้อความทางเลือกของรูปภาพ
- รูปที่มีความหมายควรมี alt ที่สั้น ชัด และตรงจุด
- รูปตกแต่งล้วน ๆ อาจใช้ `alt=""` ได้ในบริบทที่เหมาะสม
- อย่าใส่ alt แบบกว้าง ๆ หรือยัดคำว่า "รูปภาพของ..." โดยไม่จำเป็น
10. Lab สำหรับ Playground
ฝึก 3 ระดับเพื่อให้เข้าใจการเขียน alt ตั้งแต่การเพิ่ม alt พื้นฐาน การแก้ alt ที่ไม่สื่อความหมาย ไปจนถึงการเลือกว่าแต่ละรูปควรใช้ alt แบบใด
Lab 1 (พื้นฐาน): เพิ่ม alt ให้รูปพื้นฐาน
ชื่อ Lab: ใส่ alt ให้รูปแรก เป้าหมาย: เพิ่ม alt ที่สื่อความหมายให้รูปพื้นฐาน โจทย์: ให้สร้าง <img id="course-cover"> โดยใช้ src="https://picsum.photos/seed/alt-lab1/640/360" และ alt="ภาพหน้าปกบทเรียน Alt Text" เงื่อนไข: ต้องมี img#course-cover 1 ตัว และค่า src กับ alt ต้องตรงตามโจทย์ สิ่งที่ระบบควรตรวจ: selector exists, source text, attribute value และ browser runtime แนวทางการคิด: สร้าง img ก่อน แล้วใส่ alt ที่บอกว่ารูปนี้สื่ออะไร เฉลยตัวอย่าง: ดูในส่วนเฉลยของ Lab นี้
Lab 2 (กลาง): แก้ alt ที่ไม่สื่อความหมาย
ชื่อ Lab: เปลี่ยน alt ให้ชัดขึ้น เป้าหมาย: แก้ alt ที่กว้างเกินไปให้สื่อความหมายจริง โจทย์: ในโค้ดเริ่มต้น มีรูป id="diagram-image" ที่ใช้ alt="รูปภาพ" ให้แก้เป็น alt="แผนผังโครงสร้างเนื้อหาของหน้าเว็บ" เงื่อนไข: ต้องคง img#diagram-image ไว้ และค่า alt ต้องเปลี่ยนเป็นข้อความใหม่ตามโจทย์ สิ่งที่ระบบควรตรวจ: selector exists, source text, attribute value และ browser runtime แนวทางการคิด: อย่าใช้คำกว้าง ๆ แต่ให้บอกว่ารูปนั้นกำลังสื่ออะไร เฉลยตัวอย่าง: ดูในส่วนเฉลยของ Lab นี้
Lab 3 (ท้าทาย): เลือกว่ารูปไหนควรมี alt แบบใด
ชื่อ Lab: เลือก alt ให้เหมาะกับบทบาทของรูป เป้าหมาย: แยกให้ได้ว่ารูปไหนควรมี alt ที่สื่อความหมาย และรูปไหนควรใช้ alt ว่าง โจทย์: ให้แก้รูป 2 รูปดังนี้ - รูป id="content-image" ต้องมี alt="แผนภาพอธิบายการใช้งาน alt text" - รูป id="decorative-image" ต้องใช้ alt="" เงื่อนไข: ต้องมีรูปทั้งสองตัวอยู่ครบ และกำหนดค่า alt ให้ตรงตามบทบาทของแต่ละรูป สิ่งที่ระบบควรตรวจ: selector exists, source text, attribute value และ browser runtime แนวทางการคิด: รูปที่มีความหมายใช้ alt ที่ชัดเจน ส่วนรูปตกแต่งล้วน ๆ ใช้ alt ว่าง เฉลยตัวอย่าง: ดูในส่วนเฉลยของ Lab นี้