0Pricing
HTML Academy · บทเรียน

เมื่อใดควรใช้ ARIA เทียบกับ HTML แบบเนทีฟ

ปฏิบัติตามกฎข้อแรกของ ARIA: เลือกใช้ความหมายแบบเนทีฟก่อน

เมื่อใดควรใช้ ARIA เทียบกับ HTML แบบเนทีฟ เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

ARIA คืออะไร

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

กฎข้อแรกของ ARIA

แนวทาง ARIA ที่สำคัญที่สุดคือ อย่าใช้ ARIA หาก HTML ดั้งเดิมทำสิ่งนั้นได้:

<!-- BAD: ARIA on a div -->
<div role="button" tabindex="0" onclick="submit()">Submit</div>

<!-- GOOD: use a real button -->
<button type="submit">Submit</button>

<!-- Native HTML elements:
  - Are keyboard accessible by default
  - Have correct semantics built in
  - Work in more contexts
  - Require less code
-->

เมื่อ HTML ดั้งเดิมไม่เพียงพอ

จำเป็นต้องใช้ ARIA เมื่อ:

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

ARIA ไม่เพิ่มพฤติกรรม

ความเข้าใจผิดที่สำคัญ: ARIA เพิ่มข้อมูลเมตาด้านการเข้าถึงเท่านั้น — ไม่ได้เพิ่มการทำงาน:

<!-- Adding role="button" to a div does NOT:
  - Make it keyboard-focusable (add tabindex="0")
  - Make Enter/Space activate it (add event listeners)
  - Make it styled like a button (add CSS)
-->

<!-- You must implement ALL behavior yourself -->
<!-- Native <button> handles all this for free -->

หมวดหมู่ของ ARIA

แอตทริบิวต์ของ ARIA แบ่งเป็นสามหมวดหมู่:

  • บทบาท — กำหนดว่าองค์ประกอบคืออะไร: role="button", role="dialog"
  • คุณสมบัติ — อธิบายลักษณะคงที่: aria-label, aria-required
  • สถานะ — อธิบายเงื่อนไขแบบไดนามิก: aria-expanded, aria-checked

HTML เชิงความหมายเทียบกับสิ่งเทียบเท่าใน ARIA

องค์ประกอบ HTML ส่วนใหญ่มีบทบาท ARIA โดยนัยอยู่แล้ว:

<nav>   ≡  role="navigation"
<main>  ≡  role="main"
<aside> ≡  role="complementary"
<header> ≡ role="banner" (page-level)
<footer> ≡ role="contentinfo" (page-level)
<button> ≡ role="button"
<a href> ≡ role="link"
<h1-h6> ≡ role="heading"
<ul>    ≡  role="list"

การใช้ ARIA ที่ถูกต้องทั่วไป

ตัวอย่างการใช้ ARIA ที่ถูกต้อง:

<!-- 1. Custom dropdown (no native equivalent): -->
<div role="combobox" aria-expanded="false">...</div>

<!-- 2. Loading state announcement: -->
<div role="status" aria-live="polite">Loading results...</div>

<!-- 3. Override landmark label: -->
<nav aria-label="Primary navigation">...</nav>

<!-- 4. Associate error with input: -->
<input aria-describedby="error-msg">
<span id="error-msg" role="alert">Invalid email</span>

การใช้ ARIA ที่ไม่ถูกต้อง

ข้อผิดพลาดทั่วไปในการใช้ ARIA:

<!-- BAD: ARIA role contradicts the element -->
<h2 role="button">Heading</h2>  <!-- don't turn a heading into a button -->

<!-- BAD: ARIA on an unsupported element -->
<div role="listitem">Item</div>  <!-- listitem must be inside list role -->

<!-- BAD: ARIA where HTML works fine -->
<p role="paragraph">Text</p>  <!-- p already has paragraph semantics -->

<!-- BAD: aria-label on hidden element -->
<span aria-hidden="true" aria-label="something">  <!-- contradictory -->

บทบาทจุดสังเกต

บทบาทจุดสังเกตของ ARIA ช่วยให้ผู้ใช้โปรแกรมอ่านหน้าจอนำทางไปยังภูมิภาคต่าง ๆ ของหน้า:

<div role="banner">     <!-- header for the whole page -->
<div role="navigation">  <!-- major navigation -->
<div role="main">        <!-- main content -->
<div role="complementary"> <!-- aside content -->
<div role="contentinfo"> <!-- page footer -->
<div role="search">      <!-- search form -->
<div role="form">        <!-- form with label -->

<!-- These are ONLY needed if using divs instead of semantic elements -->
<!-- Prefer the native HTML elements instead -->

การทดสอบการนำ ARIA ไปใช้

วิธีตรวจสอบว่า ARIA ของคุณถูกต้อง:

  • ใช้แผงการเข้าถึงใน Chrome/Firefox DevTools
  • ฟังด้วย VoiceOver (Mac) หรือ NVDA (Windows)
  • เรียกใช้ส่วนขยาย axe DevTools
  • ตรวจสอบโครงสร้างการเข้าถึง — สะท้อนสิ่งที่คุณคาดหวังหรือไม่

ข้อควรระวังเรื่อง aria-hidden

ข้อผิดพลาดทั่วไปเกี่ยวกับ aria-hidden:

<!-- BAD: aria-hidden on element that still receives focus -->
<button aria-hidden="true">Close</button>
<!-- The button is still focusable but invisible to screen readers
     Screen reader users reach it via Tab but hear nothing -->

<!-- GOOD: for focus + hide, use hidden attribute or display:none: -->
<button hidden>Close</button>  <!-- removes from both tab order and AT -->

<!-- Or: if you must keep visible: -->
<button style="display:none" aria-hidden="true">Close</button>

ตรวจสอบอย่างรวดเร็ว

การเพิ่ม role="button" ให้ div จะทำให้เกิดอะไรขึ้นโดยอัตโนมัติ

สรุป: ARIA เทียบกับ HTML ดั้งเดิม

สิ่งสำคัญเกี่ยวกับ ARIA:

  • กฎข้อแรก: ใช้ HTML ดั้งเดิมเมื่อทำได้
  • ARIA เพิ่มเฉพาะความหมาย — คุณต้องเขียนพฤติกรรมเอง
  • สามหมวดหมู่: บทบาท, คุณสมบัติ, สถานะ
  • บทบาทจุดสังเกตช่วยในการนำทางด้วยโปรแกรมอ่านหน้าจอ
  • ทดสอบด้วยแผงการเข้าถึงใน DevTools และโปรแกรมอ่านหน้าจอ

คำถามที่พบบ่อย

บทเรียน “เมื่อใดควรใช้ ARIA เทียบกับ HTML แบบเนทีฟ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เมื่อใดควรใช้ ARIA เทียบกับ HTML แบบเนทีฟ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เมื่อใดควรใช้ ARIA เทียบกับ HTML แบบเนทีฟ”

ปฏิบัติตามกฎข้อแรกของ ARIA: เลือกใช้ความหมายแบบเนทีฟก่อน คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “เมื่อใดควรใช้ ARIA เทียบกับ HTML แบบเนทีฟ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม

ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เมื่อใดควรใช้ ARIA เทียบกับ HTML แบบเนทีฟ
  2. role button alert dialog และ landmark
  3. aria-label aria-labelledby และ aria-describedby
  4. aria-hidden และ aria-live
← กลับไปที่ HTML Academy