4 คะแนน โดย GN⁺ 2025-10-12 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • แท็ก <output> ไม่ค่อยเป็นที่รู้จักในหมู่นักพัฒนาเว็บ แต่มี การแสดงผลลัพธ์แบบไดนามิกและการเข้าถึงสำหรับโปรแกรมอ่านหน้าจอ มาให้ในตัว
  • มีอยู่ในสเปก HTML มานานแล้ว และถูกแมปเป็น role="status" โดยอัตโนมัติ เพื่อประกาศการเปลี่ยนแปลงให้เทคโนโลยีช่วยเหลือสำหรับผู้พิการทางสายตารับทราบ
  • <output> ใช้สำหรับแจ้ง ผลลัพธ์ที่คำนวณจากค่าที่ผู้ใช้ป้อน แต่กลับถูกมองข้ามในบทสอนและไลบรารีส่วนใหญ่
  • รองรับการเข้าถึงได้ยอดเยี่ยม เช่น การรองรับแอตทริบิวต์ for="" และยังทำงานร่วมกับเฟรมเวิร์ก JavaScript ได้ดีมาก
  • สามารถนำไปใช้ได้อย่างมีประโยชน์ในโปรเจกต์จริงหลากหลายแบบ เช่น เครื่องคิดเลข การจัดรูปแบบค่าสไลเดอร์ และฟีดแบ็กการตรวจสอบฟอร์ม

อัญมณีที่ซ่อนอยู่ใน HTML: แท็ก <output>

นักพัฒนาทุกคนคุ้นเคยกับองค์ประกอบ <input> เป็นอย่างดี และมันคือเครื่องมือหลักสำหรับการรับข้อมูลบนเว็บ

แต่องค์ประกอบ <output> นั้น คนส่วนใหญ่อาจไม่เคยใช้ และหลายคนอาจไม่รู้ด้วยซ้ำว่ามันมีอยู่

เรื่องนี้น่าเสียดาย เพราะ การแสดงผลลัพธ์แบบไดนามิกและการเข้าถึง ที่เรามักแก้ขัดด้วย <div> และ ARIA นั้น <output> ช่วยแก้ได้ในตัวอยู่แล้ว

แท็กนี้มีอยู่ในสเปก HTML มานานมาก แต่ก็ยังไม่เป็นที่รู้จักอย่างแพร่หลาย

คำจำกัดความในสเปก HTML5

ตามสเปก HTML5

องค์ประกอบ <output> ใช้แทนผลลัพธ์ที่คำนวณได้ในแอปพลิเคชัน หรือผลลัพธ์จากการกระทำของผู้ใช้

ใน accessibility tree มันจะถูกแมปเป็น role="status" ทำให้ทุกครั้งที่ค่าเปลี่ยน โปรแกรมอ่านหน้าจอจะอ่านเนื้อหาทั้งหมดให้ผู้ใช้ฟังโดยอัตโนมัติ
ซึ่งมีลักษณะเหมือนมี aria-live="polite" aria-atomic="true" ติดมาให้โดยปริยาย

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

วิธีใช้ <output>

ใช้งานแบบง่าย ๆ ได้ดังนี้

<output>แสดงค่าแบบไดนามิกที่นี่</output>

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

ช่วงเวลาที่ค้นพบ

ผู้เขียนค้นพบคุณค่าของ <output> ระหว่างทำโปรเจกต์ด้านการเข้าถึง โดยเฉพาะในขั้นตอน การแสดงคะแนนของฟอร์มหลายขั้นตอน

แม้ว่าการเปลี่ยนแปลงของคะแนนจะมองเห็นได้บนหน้าจอ แต่ผู้ใช้โปรแกรมอ่านหน้าจอกลับไม่สามารถรับรู้ความเปลี่ยนแปลงนั้นได้
แม้จะแก้ได้ด้วย ARIA live region แต่ผู้เขียนมองว่าการใช้ HTML ที่มีความหมายชัดเจนนั้นเหมาะสมกว่า

ระหว่างเปิดดูสเปก จึงได้พบว่า <output> สามารถใช้แยกจากฟอร์มได้ และยังประกาศผลลัพธ์ให้อัตโนมัติ ทำให้ตระหนักว่าวิธีแก้ที่ง่ายที่สุดนั้นมีอยู่ในสเปกมานานแล้ว

เหตุผลที่ไม่ค่อยมีคนใช้

มันเป็นแท็กที่ถูกลืม บทสอนและไลบรารีคอมโพเนนต์ส่วนใหญ่ไม่ค่อยกล่าวถึง และแม้แต่ใน public repository บน Github ก็แทบไม่พบตัวอย่างการใช้งาน

จึงเกิดช่องว่างทางความรู้ซ้ำแล้วซ้ำเล่า และกลายเป็นวงจรที่ยิ่งทำให้มันไม่ถูกใช้งาน

สิ่งที่ควรรู้

  • <output> ก็มี แอตทริบิวต์ for="" เช่นเดียวกับ <label>
    • สามารถระบุ id ที่คั่นด้วยช่องว่าง เพื่อบอกได้ว่าผลลัพธ์นี้ขึ้นกับค่าป้อนใดบ้าง
  • แม้จะไม่ต่างกันในเชิงภาพ แต่ ใน accessibility tree จะเชื่อมความสัมพันธ์ระหว่างอินพุตกับผลลัพธ์เชิงความหมายไว้
  • ใช้งานได้ทุกที่แม้ไม่มีองค์ประกอบ <form> ขอเพียงเป็นข้อความที่เปลี่ยนแบบไดนามิกตามอินพุตของผู้ใช้
  • โดยค่าเริ่มต้นเป็นองค์ประกอบแบบ inline จึงอาจต้องจัดสไตล์เหมือน <span> หรือ <div> ตามความต้องการด้านเลย์เอาต์
  • มีอยู่ในสเปกมาตั้งแต่ปี 2008 จึงมี การรองรับจากเบราว์เซอร์และโปรแกรมอ่านหน้าจอ ที่ยอดเยี่ยมมาก
  • ทำงานร่วมกับ JS framework ทุกตัว เช่น React, Vue ได้อย่างดี
  • ณ เดือนตุลาคม 2025 โปรแกรมอ่านหน้าจอบางตัวอาจยังไม่อ่านการอัปเดต จึงแนะนำให้เพิ่มแอตทริบิวต์ role="status" ในกรณีดังกล่าว

สำคัญ:
<output> เหมาะกับ ผลลัพธ์ที่คำนวณได้หรือผลจากแอ็กชัน ที่เชื่อมโยงกับอินพุตของผู้ใช้อย่างชัดเจน
ไม่ควรใช้กับการแจ้งเตือนทั่วทั้งระบบ เช่น toast message และสำหรับ system feedback ควรใช้ role="status" หรือ role="alert" แทน

ตัวอย่างการใช้งานจริง

แอปพลิเคชันเครื่องคิดเลข

เมื่อสร้างเครื่องคิดเลขแบบง่าย หากใช้ <output> แสดงผล ก็จะได้ข้อดีคือ ค่าผลลัพธ์ถูกประกาศให้อัตโนมัติ โดยไม่ต้องเพิ่มบทบาท ARIA ใด ๆ

การจัดรูปแบบค่าสไลเดอร์ (กรณีของ Volvo Cars)

ใช้สไลเดอร์ปรับค่าภายใน เช่น 10000 แล้วแสดงผลใน <output> เป็นรูปแบบที่อ่านง่ายกว่า เช่น 10,000 miles/year
โดยให้คอนเทนเนอร์มี role="group" และมี label ร่วมกัน เพื่อใช้ประโยชน์ด้านการเข้าถึงและการประกอบคอมโพเนนต์ใน React

ฟีดแบ็กการตรวจสอบฟอร์ม

ข้อความตรวจสอบแบบเรียลไทม์ เช่น ความแข็งแรงของรหัสผ่าน ก็สามารถใช้ <output> เพื่อ แจ้งผู้ใช้เทคโนโลยีช่วยเหลือได้ทันที

การแสดงผลลัพธ์จากการคำนวณบนเซิร์ฟเวอร์

<output> ยังเหมาะกับ ค่าที่คำนวณจากเซิร์ฟเวอร์ เช่น ค่าจัดส่ง ภาษี หรือค่าที่แนะนำจาก Server API

เช่นในตัวอย่าง React ด้านล่าง สามารถรับจำนวนเงินจากเซิร์ฟเวอร์แล้วแสดงใน <output> ได้ทันที

ความพึงพอใจจากการใช้องค์ประกอบเนทีฟ

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

ทั้งหมดนี้ยังชี้ให้เห็นว่าใน HTML ยังคงมีองค์ประกอบที่เป็นเหมือนอัญมณีซ่อนอยู่อีกมาก

อัปเดตล่าสุด: Bob Rudis ได้เผยแพร่ หน้าเดโมที่ใช้งานได้จริง ที่เข้ากับบทความนี้

1 ความคิดเห็น

 
GN⁺ 2025-10-12
ความเห็นจาก Hacker News
  • ปัญหาขององค์ประกอบ <output> คือมันเหมือนถูกทำมาแค่ครึ่งเดียว เลยรู้สึกว่าแทบไม่มีประโยชน์ในการใช้งานจริง
    คิดว่าถ้ามีแอตทริบิวต์ type แบบ input มันจะใช้งานได้จริงกว่านี้มาก
    ฉันเคยทดลอง output|type ใน Sciter ของตัวเอง และเพิ่มหลายประเภทไว้แบบนี้

    • type="text": ค่าเริ่มต้น, ไม่มีการฟอร์แมต
    • type="number": ฟอร์แมตตัวเลขตาม locale ของผู้ใช้
    • type="currency": ฟอร์แมตสกุลเงินตาม locale ของผู้ใช้
    • type="date": แสดงเป็นวันที่, ไม่มีการแปลง timezone
    • type="date-local": ฟอร์แมตวันที่ท้องถิ่น, แปลง UTC datetime เป็นเวลาท้องถิ่น
    • type="time": แสดงเป็นเวลา
    • type="time-local": เวลาท้องถิ่น โดยจัดการค่าเป็น UTC datetime
      วิธีนี้ทำให้เซิร์ฟเวอร์ส่งข้อมูลมาได้แม้จะไม่รู้ locale ของผู้ใช้
    • ตามที่อธิบายไว้ในบทความและสเปก <output> มีไว้ใช้แสดงผลลัพธ์ของการคำนวณในแอป หรือผลของการกระทำของผู้ใช้
      ความหมายเชิง ARIA เป็นจุดสำคัญ และเมื่อหน้าอัปเดต สกรีนรีดเดอร์จะอ่านผลลัพธ์ออกมา
      ภายใน <output> คุณสามารถใส่รูปแบบชนิดใดก็ได้เอง
      "text" คือค่าเริ่มต้น และถ้าเป็นวันที่หรือเวลาก็ใช้แท็ก <time> ได้
      ตอนนี้ยังไม่มีแท็กเฉพาะสำหรับฟอร์แมตตัวเลข แต่หลังจากมี Intl ก็มีการขอฟีเจอร์นี้มากขึ้น
      ตัวอย่างเช่น:
      <output>The new date is <time datetime="2025-10-11">Oct 11</time></output>
      กล่าวคือ <output> ไม่จำเป็นต้องรองรับทุกชนิดเอง แต่ HTML ทั้งระบบควรเป็นตัวแทนชนิดข้อมูล

    • เห็นด้วยกับคำว่าเป็นฟีเจอร์ครึ่ง ๆ กลาง ๆ จนแทบไม่มีประโยชน์
      น่าเสียดายที่แม้ในปี 2025 ก็ยังมีเคสแบบนี้เยอะเกินไป
      ฉันคิดว่าส่วนหนึ่ง Safari ต้องรับผิดชอบ
      ตัวอย่างที่ชัดที่สุดคือ <input type="date">
      เขาบอกว่าเอาไปใช้ในโปรดักชันได้เลย แต่ในความเป็นจริงเพราะปัญหาข้ามเบราว์เซอร์ สุดท้ายเลยใช้ JS date picker กันมากกว่า ซึ่งรู้สึกแปลกมาก

    • สิ่งที่ฉันอยากได้เป็นการส่วนตัวคือให้ <output> ผูกกับ <input> โดยตรงเพื่อแสดงผลลัพธ์ได้เลย
      เช่น: <input type="range" id="example_id" name="example_nm" min="0" max="50"> <output name="example_result" for="example_id"></output> อยากให้มันแสดงค่าของ input ได้ตรง ๆ แบบนี้
      ถ้ามีตัวกำหนด "type" เพิ่มเข้ามาด้วย และให้เปลี่ยนเนื้อหาได้ผ่าน content: ใน CSS ::before หรือ ::after ก็คงดี
      คิดว่าถ้ามีความสามารถฟอร์แมตแบบนี้สำหรับ <input> หลายประเภทก็น่าจะใช้งานได้ดี
      โดยเฉพาะ type="tel" ที่จะสะดวกมากถ้าสามารถฟอร์แมตค่าที่ป้อนให้ดูสวยงามได้
      ใช้ได้กับ 'checkbox, color, date, datetime-local, file, month, number, radio, range, tel, time, url, week' ด้วย
      พวกข้อความก็อาจมีประโยชน์ในบางเงื่อนไข
      และอยากให้แอตทริบิวต์ for="" มีบทบาทได้หลากหลายกว่านี้
      ตอนนี้ตัวอย่างส่วนใหญ่ยังใช้การดัดแปลงแบบ <output name="result"><form oninput="result.value=..."> มากกว่า

    • การมองว่า <output> ควรมีชนิดข้อมูลแบบสมมาตรกับ input เป็นแนวทางที่ผิด
      output ไม่ใช่ค่าป้อนเข้าที่มี type แต่เป็นคอนเทนเนอร์ที่มีแนวคิดว่าเนื้อหาบนหน้าจะเปลี่ยนแปลงได้

    • ฉันชอบรูปแบบด้านล่างมากกว่า <output for=input> <!-- ใส่คอมโพเนนต์ time-locale แบบกำหนดเอง --> <time is=time-locale datetime=2001-02-03>2001-02-03</time> </output> อยากให้คอมโพเนนต์นี้เปลี่ยนค่าให้ตาม locale
      การสร้างเนื้อหาปลอมด้วย HTML/CSS มักก่อปัญหาได้ง่ายหลายอย่าง
      เช่นตอนคัดลอกสิ่งที่ถูก inject ด้วย CSS ::before/:after หรือความต่างระหว่าง .innerText กับ inner text จริง
      เรื่องพวกนี้คงต้องมีการตัดสินใจเชิงออกแบบ แต่ถ้ายัดฟีเจอร์มากเกินไปไว้ในแท็กเดียว สุดท้ายมันจะกลายเป็น DSL ที่มีไว้เพื่อแท็กนั้นโดยเฉพาะ
      ชนิดของค่า (สัมบูรณ์/สัมพัทธ์), ข้อมูลประกอบ (เช่นประเภทสกุลเงิน) จะกลายเป็นส่วนหนึ่งของการประมวลผล HTML และแก้ไขอย่างยืดหยุ่นด้วย JS ได้ยาก

  • <output> เหรอ? ฉันก็ไม่เคยใช้เหมือนกัน
    วันนี้เพิ่งรู้จัก เลยเพิ่มเข้าไปในลิสต์ TIL (วันนี้ได้เรียนรู้อะไร)
    แม้แต่ค้นหาใน public repo ของ GitHub ก็แทบไม่เจอ ซึ่งคงเป็นเพราะถ้าไม่มีใครสอน ก็ไม่มีใครใช้
    พอคิดถึงตรงนี้ก็สงสัยขึ้นมาว่า เวลา LLM สร้างโค้ด มันใช้แท็กนี้จริงไหม หรือจริง ๆ แล้วแทบไม่ได้เรียนรู้มันเลย

    • ฉันก็กังวลเหมือนกันว่า AI ไม่ได้อ่านเอกสารสเปก
      ถ้ามีสเปก W3C ใหม่ออกมา แล้วทุกคนเอาแต่ "vibe coding" จะเป็นยังไง?
      ถ้า AI ไม่สะท้อนสเปกล่าสุด แต่เอาแต่ทำซ้ำแพตเทิร์นโค้ดเก่า ๆ การเผยแพร่สเปกอัปเดตอาจยิ่งยากกว่าตอนนี้เสียอีก

    • ฉันเพิ่งรู้จักแท็ก <output> ครั้งแรกก็เพราะ Claude สร้างโค้ดให้

    • LLM ไม่ได้อ่านเอกสารมาตรฐานโดยตรง แต่สร้างโค้ดจากแพตเทิร์นเชิงสถิติของข้อมูลจำนวนมหาศาลที่ได้จากโปรเจ็กต์ที่มีอยู่
      ถ้าแท็กนี้แทบไม่ถูกใช้ในโค้ดจริง มันก็แทบจะไม่โผล่มาในผลลัพธ์โค้ดจาก LLM ด้วย

  • อัปเดตวันที่ 7 ตุลาคม 2025: สกรีนรีดเดอร์บางตัวยังไม่รับรู้การอัปเดตของแท็ก <output> ดังนั้นในช่วงนี้การระบุแอตทริบิวต์ role แบบชัดเจนอาจดีกว่า: <output role="status">
    เลยอดสงสัยไม่ได้ว่าต้องรอให้การรองรับแท็กเก่าอายุ 17 ปีนี้ดีขึ้นไปเรื่อย ๆ ใช่ไหม

    • บน Windows ถ้าไปเปิด issue ในรีโพซิทอรีของ NVDA เขามักจัดการให้ค่อนข้างดี
      https://github.com/nvaccess/nvda

    • แม้จะเป็นมาตรฐานมา 17 ปีแล้ว แต่ถ้าจะปรับปรุงปัญหาที่สกรีนรีดเดอร์ยังเมินแท็กนี้อยู่ ก็ยังต้องมีความพยายามกันอีกมาก
      ฉันคิดว่านี่เป็นปัญหาฝั่งสกรีนรีดเดอร์อย่างชัดเจน

  • ฉันเรียนคอร์ส front-end web accessibility มาหลายคอร์ส แต่ไม่เคยเห็นแท็ก <output> เลยสักครั้ง
    ขอบคุณที่แชร์ข้อมูลดี ๆ

  • <output> ก็มีแอตทริบิวต์ for="" เหมือน <label> แต่สงสัยว่าผู้ใช้สกรีนรีดเดอร์จะรู้สึกว่ามันมีความหมายไหม
    เพราะบนเว็บปัจจุบันแทบไม่มีใครใช้ ผู้ใช้สกรีนรีดเดอร์เองก็อาจไม่คุ้นเคย แต่สุดท้ายก็คงขึ้นกับ UX ของซอฟต์แวร์

    • ฉันไม่ได้ใช้สกรีนรีดเดอร์ด้วยตัวเอง แต่เคยจับมันในการทดสอบอยู่บ่อย ๆ
      ยังไม่แน่ใจว่ามันจะถูกเปิดเผยให้เทคโนโลยีช่วยการเข้าถึงรับรู้ได้ถูกต้องไหม
      ตอนนี้ไม่ได้อยู่หน้าคอม เลยทดสอบทันทีไม่ได้
      ส่วนตัวคิดว่าการติดป้ายกำกับค่า output ให้ชัดเจนน่าจะดีกว่าเยอะ
      เช่น: <label for="output">Total</label> <output id="output">£123.45</output> แบบนี้สกรีนรีดเดอร์จะอ่านว่า "Total, £123.45" ซึ่งช่วยให้เข้าใจบริบทได้ง่าย
  • ฉันมองว่า semantic HTML เป็นเหมือนกับดักสำหรับมือใหม่
    ไม่ต้องคิดมาก ใช้โซลูชันที่ทำงานได้จริงอย่าง aria-live ไปเลยดีกว่า
    องค์ประกอบแบบนี้อาจดูสนุกดี แต่ในฐานะนักพัฒนา หน้าที่คือสร้างสิ่งที่ใช้งานได้จริงให้ผู้ใช้
    แทนที่จะใช้ semantic tag ที่ไม่แพร่หลาย ควรใช้สิ่งที่เบราว์เซอร์และ ecosystem เดิมคาดหวังมากกว่า

    • HTML ไม่ได้มีไว้เพื่อเบราว์เซอร์เท่านั้น
      ในฐานะคนที่ทำ EPUB มาเยอะ ฉันพบว่าการจัดโครงสร้างหน้าแบบ semantic ทำให้ทุกอย่างง่ายและดีขึ้นมากโดยรวม
  • เพิ่งรู้ว่า <output> เป็นแท็กสำหรับ accessibility ของเว็บเพจ โดยเฉพาะการรองรับสกรีนรีดเดอร์
    "ARIA" ย่อมาจาก Accessible Rich Internet Applications ซึ่งเป็นชุดแอตทริบิวต์ HTML ที่ช่วยเพิ่มการเข้าถึงสำหรับผู้พิการ

    • ฟังดูเหมือนการไปอธิบายว่า JavaScript คืออะไรให้คนที่อยู่สาย React มานาน
      การไม่รู้พื้นฐานด้าน accessibility ไม่ใช่เรื่องน่าอาย แต่ก็ไม่ควรทำท่าราวกับว่ามันแปลกที่ผู้อ่านไม่รู้เหมือนกัน

    • MDN มีเอกสารเกี่ยวกับเรื่องนี้ที่สรุปไว้ดีมาก
      (ผู้เขียนบทความก็ย้ำแนวทางเดียวกัน)
      "กฎข้อแรกของการใช้ ARIA คือ ถ้ามีองค์ประกอบหรือแอตทริบิวต์ HTML แบบเนทีฟที่มี semantics และ behavior ตรงตามต้องการอยู่แล้ว ก็อย่าเอา ARIA role, state หรือ property มาดัดแปลงใช้ ให้ใช้อันนั้นไปเลย"
      https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA

    • ขอบคุณสำหรับคำอธิบาย
      จริง ๆ ฉันก็ไปกูเกิลเองได้แหละ แต่บ่ายวันเสาร์อึมครึมแบบนี้ การได้นั่งอ่านคอมเมนต์ของคุณมันสบายใจกว่า
      ขอบคุณอีกครั้ง

  • ตอนเห็นแค่ชื่อบทความ ฉันนึกว่า <output> คงถูกใช้งานผิดแน่ ๆ แต่พออ่านแล้วกลับประหลาดใจมาก
    (โดยเฉพาะพอเห็นภาพเครื่องคิดเลข GenAI ก๊องแก๊งด้านบน ก็ยิ่งคาดว่าจะเป็นความล้มเหลวหนักกว่านี้ แต่สุดท้ายเนื้อหาดีมากจนอ่านจบก่อนค่อยนึกถึงภาพนั้นอีกที)

    • ภาพเครื่องคิดเลข GenAI ก๊องแก๊งนั้นตลกมาก
      มันทำได้แค่บวก คูณ หาร แต่ลบไม่ได้

    • ถ้าจะพูดถึงภาพเครื่องคิดเลข GenAI ก๊องแก๊งนั้น
      เหมือนเราจะลืมภาพที่มนุษย์เราทำกันแบบหยาบ ๆ กว่านี้ก่อนยุค AI ไปแล้ว
      อย่างน้อย AI ก็ทำให้ตอนนี้เราสร้างภาพที่ไม่ชวนอายได้ทันที
      ในกรณีนี้ (ในมุมมองส่วนตัว) มันให้บรรยากาศ IT ย้อนยุควินเทจได้ดี เลยถือว่ามีคุณค่า
      ฉันไม่คิดว่าการใช้ AI ทุกแบบจะมาแทนงานของศิลปินมืออาชีพทั้งหมด

  • ฉันชอบเวลาเจอเนื้อหาแบบนี้
    อีกเคล็ดลับหนึ่งคือ ตั้งชื่อฟอร์มให้สอดคล้องกับโครงสร้างข้อมูลฝั่งแบ็กเอนด์ จะช่วยลดความจำเป็นในการดึงค่าด้วย JS หรือประกอบข้อมูลใหม่
    เช่นแบบนี้: <input name=“entity[id]”> <input name=“entity[relation]”> แบบนี้ไม่ต้องมาสร้างข้อมูลเพิ่มใน JS ให้น่ารำคาญ แค่ submit ฟอร์มก็ได้ข้อมูลตามที่ต้องการทันที