0Pricing
Web Accessibility Academy · บทเรียน

แฟรกเมนต์ พอร์ทัล และกับดักลำดับ DOM

รักษาให้ลำดับที่แสดงผลตรงกับแผนผังการเข้าถึง

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

ลำดับต้นฉบับคือลำดับเริ่มต้น

โปรแกรมอ่านหน้าจอและแป้นพิมพ์ทำตาม ลำดับ DOM ซึ่งคือลำดับที่องค์ประกอบปรากฏในเอกสาร CSS อาจย้ายองค์ประกอบในเชิงภาพได้ แต่ลำดับการอ่านจะไม่เปลี่ยน

Fragment ไม่เพิ่มกล่องพิเศษ

React Fragment จัดกลุ่มองค์ประกอบลูกโดยไม่เพิ่ม div ที่ใช้ครอบ ทำให้ DOM สะอาดและป้องกันไม่ให้รายการหรือตารางเสียโครงสร้างจากองค์ประกอบที่เกินมา

<>
  <th>Name</th>
  <th>Email</th>
</>

เหตุใด div ที่ใช้ครอบจึงสร้างปัญหาได้

div ที่เพิ่มเข้ามาภายในรายการหรือตารางอาจทำให้โครงสร้างแม่ลูกที่เทคโนโลยีสิ่งอำนวยความสะดวกคาดหวังไว้เสียหาย Fragment ช่วยหลีกเลี่ยงการซ้อนองค์ประกอบที่ไม่ถูกต้องนี้ได้ทั้งหมด

Portal แสดงผลที่อื่น

Portal แสดงองค์ประกอบลูกไปยังโหนด DOM อื่น ซึ่งมักเป็น document body วิธีนี้เป็นมาตรฐานสำหรับเมานต์โมดัลให้อยู่เหนือองค์ประกอบอื่นทั้งหมด

createPortal(<Modal />, document.body);

Portal ยังคงบริบทของ React

แม้มาร์กอัปจะไปปรากฏที่อื่น แต่ portal ยังคงอยู่ในโครงสร้างคอมโพเนนต์ของคุณ State และบริบทยังคงไหลตามปกติ ตรรกะจึงไม่ได้รับผลกระทบ

กับดักของลำดับ DOM

Portal ที่อยู่ท้าย body อาจปรากฏหลังเนื้อหาที่ไม่เกี่ยวข้อง การกด Tab อาจกระโดดไปยังตำแหน่งที่อยู่ห่างออกไป ดังนั้น การจัดการ focus จึงสำคัญอย่างยิ่งสำหรับ portal

ย้าย focus เข้าไปใน Portal

เมื่อ portal เปิดขึ้น แป้นพิมพ์จะไม่ติดตามไปโดยอัตโนมัติ ให้ย้าย focus เข้าไปในโมดัลอย่างชัดเจน เพื่อให้ผู้ใช้อยู่ตรงกับเนื้อหาใหม่

กัก focus และส่งกลับ

ขณะที่โมดัลของ portal เปิดอยู่ ให้ Tab อยู่ภายในโมดัล เมื่อปิด ให้คืน focus ไปยังองค์ประกอบที่เปิดโมดัล เพราะความใกล้กันใน DOM จะไม่ทำสิ่งนี้ให้คุณ

ลำดับภาพเทียบกับลำดับการอ่าน

ลำดับของ CSS flexbox หรือการจัดวางแบบกริดสามารถเปลี่ยนตำแหน่งบนหน้าจอได้ แต่ ลำดับ Tab ยังคงทำตามต้นฉบับ ดังนั้นควรหลีกเลี่ยงการจัดลำดับเนื้อหาแบบโต้ตอบใหม่ด้วย CSS

รักษาลำดับต้นฉบับให้มีความหมาย

เขียน JSX ให้ ลำดับต้นฉบับ ตรงกับลำดับการอ่านที่สมเหตุสมผล จากนั้นทั้งผู้ใช้ที่มองเห็นและผู้ใช้โปรแกรมอ่านหน้าจอจะพบเนื้อหาในลำดับเดียวกัน

ทดสอบด้วยการกด Tab

กด Tab ผ่านแอปและดูว่า focus ไปที่ใด หาก focus กระโดดไปยังตำแหน่งที่ไม่คาดคิด ลำดับ DOM หรือ portal ของคุณอาจต้องได้รับการแก้ไข

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

คุณเมานต์โมดัลด้วย portal ไปยัง document.body ความรับผิดชอบใหม่ที่เกิดขึ้นคืออะไร

สรุป: ลำดับและ Portal

ใช้ Fragments เพื่อหลีกเลี่ยงตัวครอบที่ไม่ถูกต้อง รักษาลำดับต้นฉบับให้สมเหตุสมผล และจัดการ focus อย่างระมัดระวังทุกครั้งที่ portal แสดงเนื้อหาในที่อื่น 🧩

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

บทเรียน “แฟรกเมนต์ พอร์ทัล และกับดักลำดับ DOM” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “แฟรกเมนต์ พอร์ทัล และกับดักลำดับ DOM”

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

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

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

บทเรียน “แฟรกเมนต์ พอร์ทัล และกับดักลำดับ DOM” ใช้เวลานานแค่ไหน

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

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

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

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

  1. เปลี่ยนเส้นทางโดยไม่โหลดหน้าใหม่
  2. จัดการโฟกัสด้วย Refs และ useEffect
  3. แฟรกเมนต์ พอร์ทัล และกับดักลำดับ DOM
  4. jsx-a11y และแนวป้องกันระดับคอมโพเนนต์
← กลับไปที่ Web Accessibility Academy