role button alert dialog และ landmark
ใช้บทบาท ARIA เพื่อสื่อจุดประสงค์ขององค์ประกอบให้เทคโนโลยีสิ่งอำนวยความสะดวกทราบ
role button alert dialog และ landmark เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
role=button
ใช้ role="button" เมื่อองค์ประกอบที่ไม่ใช่ปุ่มต้องทำหน้าที่เป็นปุ่ม (พบไม่บ่อย):
<span
role="button"
tabindex="0"
onclick="handleClick()"
onkeydown="e.key==='Enter'||e.key===' ' ? handleClick() : null"
aria-pressed="false"
>
Toggle Feature
</span>
<!-- Better: use a real <button> element! -->
<!-- Only use role="button" when you cannot change the HTML element -->role=alert
role="alert" ประกาศการเปลี่ยนแปลงของเนื้อหาให้โปรแกรมอ่านหน้าจอทราบทันที:
<div role="alert" id="error-msg"></div>
<script>
// When injecting an error:
document.getElementById('error-msg').textContent = 'Invalid email address.';
// Screen readers announce this immediately without the user moving focus
// role="alert" implies aria-live="assertive" aria-atomic="true"
</script>role=dialog
role="dialog" ใช้ระบุคอมโพเนนต์กล่องโต้ตอบแบบ modal:
<div
role="dialog"
aria-modal="true"
aria-labelledby="dialog-title"
aria-describedby="dialog-desc"
id="confirm-dialog"
tabindex="-1"
>
<h2 id="dialog-title">Confirm Deletion</h2>
<p id="dialog-desc">This action cannot be undone.</p>
<button>Cancel</button>
<button>Delete</button>
</div>องค์ประกอบ dialog เทียบกับ role=dialog
HTML5 สมัยใหม่มีองค์ประกอบดั้งเดิม <dialog>:
<dialog id="confirm" aria-labelledby="dialog-title">
<h2 id="dialog-title">Confirm Deletion</h2>
<p>This cannot be undone.</p>
<form method="dialog">
<button value="cancel">Cancel</button>
<button value="confirm">Delete</button>
</form>
</dialog>
<script>
document.getElementById('confirm').showModal();
</script>
<!-- Native dialog handles focus trap and Escape key automatically -->ภาพรวมบทบาทจุดสังเกต
บทบาทจุดสังเกตของ ARIA จัดหน้าออกเป็นภูมิภาคที่นำทางได้:
<header role="banner">...</header>
<nav role="navigation">...</nav>
<main role="main">...</main>
<aside role="complementary">...</aside>
<footer role="contentinfo">...</footer>
<form role="form" aria-label="Search">...</form>
<section role="region" aria-label="Stats">...</section>
<!-- Note: prefer semantic HTML elements over ARIA roles
Only add role= when using generic divs/spans -->จุดสังเกตการนำทางหลายจุด
เมื่อหน้ามีองค์ประกอบ nav หลายรายการ ให้แยกความแตกต่างด้วย aria-label:
<nav aria-label="Primary navigation">
<ul>...</ul>
</nav>
<nav aria-label="Table of contents">
<ol>...</ol>
</nav>
<nav aria-label="Footer links">
<ul>...</ul>
</nav>
<!-- Screen reader landmark list shows: "Primary navigation, navigation"
"Table of contents, navigation" etc. -->role=status
role="status" ประกาศการอัปเดตที่ไม่เร่งด่วนอย่างสุภาพ:
<!-- Use for: success messages, loading complete, items added -->
<div role="status" aria-live="polite" id="cart-status"></div>
<script>
// When item added to cart:
document.getElementById('cart-status').textContent = '3 items in cart';
// Screen reader announces this when it finishes reading current content
// Less urgent than role="alert"
</script>role=region
role="region" สร้างส่วนจุดสังเกตที่มีชื่อ:
<section
role="region"
aria-labelledby="stats-heading"
>
<h2 id="stats-heading">Site Statistics</h2>
<dl>...</dl>
</section>
<!-- role="region" only creates a landmark IF it has an accessible name
Without aria-label or aria-labelledby, it is not a landmark -->role=search
role="search" ใช้ระบุฟังก์ชันการค้นหา:
<form role="search" action="/search">
<label for="q">Search</label>
<input type="search" id="q" name="q">
<button type="submit">Go</button>
</form>
<!-- role="search" landmark: screen readers list it as "Search, search"
Users jump directly to the search form -->role=presentation และ none
role="presentation" (ชื่ออื่น: role="none") ลบความหมายออกจากองค์ประกอบ:
<!-- Table used for layout (bad practice, but if inherited): -->
<table role="presentation">
<tr><td>Layout column 1</td><td>Layout column 2</td></tr>
</table>
<!-- role="presentation" removes the table semantics
Screen reader won't announce it as a table
Children's semantics are also affected -->ตรวจสอบอย่างรวดเร็ว
role=alert และ role=status แตกต่างกันอย่างไร
สรุป: บทบาท ARIA
บทบาท ARIA ที่พบบ่อย:
role="button"— องค์ประกอบที่ไม่ใช่ปุ่มแต่ทำหน้าที่เป็นปุ่ม (เพิ่ม tabindex + JS)role="alert"— การประกาศแบบยืนยันที่เร่งด่วนทันทีrole="dialog"— กล่องโต้ตอบแบบ modal (ควรเลือกใช้ <dialog> ดั้งเดิม)role="status"— การประกาศการอัปเดตอย่างสุภาพrole="region"— จุดสังเกตของส่วนที่มีชื่อrole="search"— จุดสังเกตของแบบฟอร์มค้นหา
เรียนรู้ HTML ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 40
- บทเรียน
- 159
คำถามที่พบบ่อย
บทเรียน “role button alert dialog และ landmark” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “role button alert dialog และ landmark” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “role button alert dialog และ landmark”
ใช้บทบาท ARIA เพื่อสื่อจุดประสงค์ขององค์ประกอบให้เทคโนโลยีสิ่งอำนวยความสะดวกทราบ คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “role button alert dialog และ landmark” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม
ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เมื่อใดควรใช้ ARIA เทียบกับ HTML แบบเนทีฟ
- role button alert dialog และ landmark
- aria-label aria-labelledby และ aria-describedby
- aria-hidden และ aria-live