การขอสิทธิ์เพื่อใช้ฟีเจอร์ที่มีประสิทธิภาพอย่างการเข้าถึงตำแหน่งในเว็บแอปทำได้หลายวิธีโดยที่จำเป็น วิธีการเหล่านี้มาพร้อมกับความท้าทายหลายประการ ซึ่งเป็นเหตุผลที่ทีมสิทธิ์ของ Chrome กำลังทดสอบเมธอดแบบประกาศใหม่ซึ่งเป็นองค์ประกอบ HTML <permission>
โดยเฉพาะ องค์ประกอบนี้อยู่ในช่วงทดลองใช้จาก Chrome 126 และท้ายที่สุดแล้วเราหวังว่าจะทำให้เป็นมาตรฐานได้
วิธีการที่จำเป็นในการขอสิทธิ์
เมื่อเว็บแอปต้องการเข้าถึงฟีเจอร์ที่ทรงพลัง เว็บแอปจะต้องขอสิทธิ์ ตัวอย่างเช่น เมื่อ Google Maps ต้องการให้ผู้ใช้ใช้ตำแหน่งโดยใช้ Geolocation API เบราว์เซอร์จะแสดงข้อความแจ้งผู้ใช้โดยมักจะมีตัวเลือกให้จัดเก็บการตัดสินใจดังกล่าว นี่คือแนวคิดที่กำหนดไว้อย่างดีในข้อกำหนดเกี่ยวกับสิทธิ์
ถามแบบบอกเป็นนัยเมื่อใช้ครั้งแรกกับขอแบบบอกล่วงหน้าอย่างชัดแจ้ง
Geolocation API เป็น API ที่ทรงพลังและอาศัยแนวทางการใช้ครั้งแรกโดยปริยาย ตัวอย่างเช่น เมื่อแอปเรียกใช้เมธอด navigator.geolocation.getCurrentPosition()
ข้อความแจ้งสิทธิ์จะปรากฏขึ้นโดยอัตโนมัติเมื่อเรียกใช้ครั้งแรก
อีกตัวอย่างหนึ่งคือ navigator.mediaDevices.getUserMedia()
API อื่นๆ เช่น
Notification API หรือ
Device Orientation และ Motion API
โดยทั่วไปจะมีวิธีขอสิทธิ์ที่ชัดเจนผ่านเมธอดแบบคงที่ เช่น Notification.requestPermission()
หรือ DeviceMotionEvent.requestPermission()
ความท้าทายในการขออนุญาต
สแปมสิทธิ์
ในอดีต เว็บไซต์จะเรียกใช้เมธอด เช่น navigator.mediaDevices.getUserMedia()
หรือ Notification.requestPermission()
แต่ก็เรียกใช้ navigator.geolocation.getCurrentPosition()
ได้ทันทีเมื่อมีการโหลดเว็บไซต์ด้วย ข้อความแจ้งสิทธิ์จะปรากฏขึ้นก่อนที่ผู้ใช้จะโต้ตอบกับเว็บไซต์ บางครั้งกรณีนี้เรียกว่าสแปมสิทธิ์และส่งผลกระทบต่อทั้ง 2 วิธี กล่าวคือ การถามโดยปริยายเมื่อใช้ครั้งแรก ตลอดจนการขอสิทธิ์ล่วงหน้าอย่างชัดแจ้ง
ข้อกำหนดด้านการลดการใช้เบราว์เซอร์และท่าทางสัมผัสของผู้ใช้
สแปมสิทธิ์ส่งผลให้ผู้ให้บริการเบราว์เซอร์ต้องใช้ท่าทางสัมผัสของผู้ใช้ เช่น การคลิกปุ่ม หรือการกดปุ่มลง ก่อนที่จะแสดงข้อความแจ้งสิทธิ์ ปัญหาของวิธีนี้คือเป็นเรื่องยากมากสำหรับเบราว์เซอร์ในการตัดสินใจว่าท่าทางสัมผัสของผู้ใช้ควรจะแสดงข้อความแจ้งสิทธิ์หรือไม่ บางทีผู้ใช้อาจแค่คลิกหน้านั้นอย่างหงุดหงิด ณ จุดใดก็ตาม เพราะหน้าเว็บใช้เวลาโหลดนานมาก หรือจริงๆ แล้วผู้ใช้คลิกปุ่มค้นหาฉัน บางเว็บไซต์ยังสามารถหลอกให้ผู้ใช้คลิกเนื้อหา เพื่อแสดงข้อความแจ้งได้ดียิ่งขึ้นด้วย
การผ่อนปรนชั่วคราวอีกวิธีคือเพิ่มการบรรเทาการละเมิดโดยทันที เช่น เริ่มจากการบล็อกฟีเจอร์ทั้งหมดโดยสมบูรณ์ หรือการแสดงข้อความแจ้งสิทธิ์ในลักษณะที่ไม่เป็นโมดัลและรบกวนน้อยกว่านี้
บริบทเกี่ยวกับสิทธิ์
ความท้าทายอีกอย่างหนึ่งโดยเฉพาะบนหน้าจอขนาดใหญ่ คือการแสดงข้อความแจ้งสิทธิ์โดยทั่วไป ซึ่งก็คือเหนือเส้นตาย ซึ่งอยู่นอกพื้นที่หน้าต่างเบราว์เซอร์ที่แอปสามารถไปถึงได้ เราทราบดีว่าผู้ใช้จะพลาดข้อความแจ้งที่ด้านบนของหน้าต่างเบราว์เซอร์เมื่อคลิกปุ่มที่ด้านล่างของหน้าต่าง ปัญหานี้มักรุนแรงขึ้นอีกเมื่อเกิดการบรรเทาปัญหาสแปมของเบราว์เซอร์
เลิกทำได้อย่างง่ายดาย
สุดท้าย ผู้ใช้ไปยังทางตันได้ง่ายเกินไป ตัวอย่างเช่น เมื่อผู้ใช้บล็อกการเข้าถึงฟีเจอร์หนึ่ง ผู้ใช้จำเป็นต้องคำนึงถึงเมนูแบบเลื่อนลงของข้อมูลเว็บไซต์ ซึ่งเป็นที่ที่สามารถรีเซ็ตสิทธิ์หรือเปิดสิทธิ์ที่ถูกบล็อกอีกครั้ง ทั้ง 2 ตัวเลือกในกรณีที่แย่ที่สุดจะต้องมีการโหลดหน้าเว็บซ้ำทั้งหมดจนกว่าการตั้งค่าที่อัปเดตจะมีผล เว็บไซต์ไม่มีทางลัดง่ายๆ เพื่อให้ผู้ใช้เปลี่ยนสถานะสิทธิ์ที่มีอยู่ได้ และต้องอธิบายอย่างละเอียดให้ผู้ใช้ทราบถึงวิธีเปลี่ยนการตั้งค่า ดังที่แสดงไว้ที่ด้านล่างของภาพหน้าจอ Google Maps ต่อไปนี้
หากสิทธิ์คือหัวใจสำคัญของประสบการณ์การใช้งาน ตัวอย่างเช่น การเข้าถึงไมโครโฟนสำหรับแอปพลิเคชันการประชุมทางวิดีโอ แอปต่างๆ อย่าง Google Meet จะแสดงกล่องโต้ตอบที่รบกวนซึ่งจะแนะนำวิธีเลิกบล็อกสิทธิ์ให้กับผู้ใช้
องค์ประกอบ <permission>
แบบประกาศ
ทีมสิทธิ์ของ Chrome ได้เปิดตัวช่วงทดลองใช้จากต้นทางสำหรับองค์ประกอบ HTML ใหม่ <permission>
เพื่อแก้ไขปัญหาต่างๆ ที่อธิบายไว้ในโพสต์นี้ องค์ประกอบนี้ช่วยให้นักพัฒนาซอฟต์แวร์ขออนุญาตใช้ชุดย่อยของฟีเจอร์ที่มีประสิทธิภาพซึ่งมีให้ใช้งานในเว็บไซต์ได้ ด้วยรูปแบบที่เรียบง่ายที่สุด
คุณสามารถใช้พารามิเตอร์ตามตัวอย่างต่อไปนี้
<permission type="camera" />
และยังคงมีการถกเถียงกันอย่างต่อเนื่องว่า <permission>
ควรเป็นองค์ประกอบที่เป็นโมฆะหรือไม่ องค์ประกอบที่เป็นโมฆะคือองค์ประกอบที่ปิดตัวเองได้ใน HTML ซึ่งจะไม่มีโหนดย่อยใดๆ ซึ่งใน HTML หมายความว่าองค์ประกอบนั้นอาจไม่มีแท็กปิดท้าย
แอตทริบิวต์ type
แอตทริบิวต์ type
มีรายการสิทธิ์ที่คุณร้องขอซึ่งคั่นด้วยการเว้นวรรค ในขณะที่เขียนบทความนี้ ค่าที่อนุญาตคือ 'camera'
, 'microphone'
และ camera microphone
(คั่นด้วยการเว้นวรรค) องค์ประกอบนี้โดยค่าเริ่มต้นจะแสดงผลคล้ายกับปุ่มที่มีการจัดรูปแบบ User Agent ของ Barebones
แอตทริบิวต์ type-ext
สำหรับสิทธิ์บางอย่างที่อนุญาตให้ใช้พารามิเตอร์เพิ่มเติม แอตทริบิวต์ type-ext
จะยอมรับคู่คีย์-ค่าที่คั่นด้วยการเว้นวรรค เช่น precise:true
สำหรับสิทธิ์เข้าถึงตำแหน่งทางภูมิศาสตร์
แอตทริบิวต์ lang
ข้อความบนปุ่มมาจากเบราว์เซอร์และควรสอดคล้องกัน ดังนั้นจึงไม่สามารถปรับแต่งได้โดยตรง เบราว์เซอร์จะเปลี่ยนภาษาของข้อความตามภาษาที่รับช่วงมาจากเอกสารหรือเชนองค์ประกอบระดับบน หรือแอตทริบิวต์ lang
ที่ไม่บังคับ ซึ่งหมายความว่านักพัฒนาซอฟต์แวร์ไม่จำเป็นต้องแปลองค์ประกอบ <permission>
ด้วยตนเอง หากองค์ประกอบ <permission>
ดำเนินการนอกขั้นตอนช่วงทดลองใช้จากต้นทาง ระบบอาจรองรับสตริงหรือไอคอนหลายรายการสำหรับสิทธิ์แต่ละประเภทเพื่อเพิ่มความยืดหยุ่น หากสนใจใช้องค์ประกอบ <permission>
และต้องการใช้สตริงหรือไอคอนที่เฉพาะเจาะจง โปรดติดต่อเรา
ลักษณะการทำงาน
เมื่อโต้ตอบกับองค์ประกอบ <permission>
ผู้ใช้จะหมุนเวียนผ่านขั้นตอนต่างๆ ได้ดังนี้
หากไม่เคยอนุญาตฟีเจอร์ใดมาก่อน ผู้ใช้อาจอนุญาตให้แสดงฟีเจอร์ในทุกๆ การเข้าชม หรืออนุญาตให้ใช้ฟีเจอร์สำหรับการเข้าชมปัจจุบันก็ได้
หากเคยอนุญาตฟีเจอร์นี้มาก่อน ผู้ใช้อาจอนุญาตต่อไปหรือจะหยุดอนุญาตก็ได้
หากเคยไม่อนุญาตฟีเจอร์ใดมาก่อน ผู้ใช้จะไม่สามารถอนุญาตหรืออนุญาตฟีเจอร์ดังกล่าวได้ในครั้งนี้
ข้อความขององค์ประกอบ <permission>
จะอัปเดตตามสถานะโดยอัตโนมัติ เช่น หากได้รับสิทธิ์ให้ใช้ฟีเจอร์ ข้อความจะเปลี่ยนไปเพื่อบอกว่าฟีเจอร์นั้นได้รับอนุญาต หากต้องให้สิทธิ์ก่อน
ข้อความจะเปลี่ยนไปเพื่อเชิญผู้ใช้ให้ใช้ฟีเจอร์นี้ เปรียบเทียบภาพหน้าจอก่อนหน้านี้กับภาพหน้าจอต่อไปนี้เพื่อดูสถานะทั้ง 2 แบบ
การออกแบบ CSS
ระบบจะจำกัดการจัดรูปแบบขององค์ประกอบ <permission>
เพื่อให้ผู้ใช้จดจำปุ่มว่าเป็นแพลตฟอร์มสำหรับเข้าถึงความสามารถอันทรงพลังได้อย่างง่ายดาย หากข้อจำกัดการจัดรูปแบบใช้ไม่ได้กับกรณีการใช้งานของคุณ เรายินดีรับฟังเกี่ยวกับวิธีและเหตุผล แม้ว่าจะไม่สามารถรองรับความต้องการด้านการจัดรูปแบบได้ทั้งหมด แต่เราหวังว่าจะค้นพบวิธีที่ปลอดภัยในการอนุญาตให้มีการจัดรูปแบบองค์ประกอบ <permission>
มากขึ้นหลังจากช่วงทดลองใช้จากต้นทาง ตารางต่อไปนี้แสดงรายละเอียดของที่พักบางแห่งที่มีข้อจำกัดหรือกฎพิเศษ ในกรณีที่ละเมิดกฎใดก็ตาม องค์ประกอบ <permission>
จะถูกปิดใช้และโต้ตอบไม่ได้ การพยายามโต้ตอบจะทำให้มีข้อยกเว้นที่ JavaScript ตรวจจับได้ ข้อความแสดงข้อผิดพลาดจะมีรายละเอียดเพิ่มเติมเกี่ยวกับการละเมิดที่ตรวจพบ
พร็อพเพอร์ตี้ | กฎ |
---|---|
|
สามารถใช้เพื่อกำหนดข้อความและสีพื้นหลังตามลำดับ ความคมชัดระหว่าง 2 สีต้องเพียงพอเพื่อให้อ่านข้อความได้อย่างชัดเจน (อัตราส่วนคอนทราสต์อย่างน้อย 3) ช่องสีอัลฟาต้องเป็น 1 |
|
ต้องตั้งค่าภายในค่าที่เทียบเท่ากับ small และ xxxlarge องค์ประกอบจะถูกปิดใช้ Zoom จะได้รับการพิจารณาเมื่อคำนวณ font-size |
|
ค่าติดลบจะถูกแก้ไขเป็น 0 |
margin (ทั้งหมด) |
ค่าติดลบจะถูกแก้ไขเป็น 0 |
|
ระบบจะแก้ไขค่าภายใต้ 200 เป็น 200 |
|
ค่าอื่นที่ไม่ใช่ normal และ italic จะได้รับการแก้ไขเป็น normal |
|
ค่าที่เกิน 0.5em จะถูกแก้ไขเป็น 0.5em ระบบจะแก้ไขค่าภายใต้ 0 เป็น 0 |
|
ค่าอื่นที่ไม่ใช่ inline-block และ none จะได้รับการแก้ไขเป็น inline-block |
|
ค่าที่เกิน 0.2em จะถูกแก้ไขเป็น 0.2em ระบบจะแก้ไขค่าที่ต่ำกว่า -0.05em เป็น -0.05em |
|
จะมีค่าเริ่มต้นเป็น 1em หากระบุ ระบบจะพิจารณามูลค่าที่คำนวณสูงสุดระหว่างค่าเริ่มต้นและค่าที่ระบุ |
|
จะมีค่าเริ่มต้นเป็น 3em หากระบุ ระบบจะพิจารณามูลค่าที่คำนวณขั้นต่ำระหว่างค่าเริ่มต้นและค่าที่ระบุ |
|
จะมีค่าเริ่มต้นเป็น fit-content หากระบุ ระบบจะพิจารณามูลค่าที่คำนวณสูงสุดระหว่างค่าเริ่มต้นและค่าที่ระบุ |
|
จะมีค่าเริ่มต้นเป็น 3 คูณ fit-content หากระบุ ระบบจะพิจารณาค่าที่คำนวณขั้นต่ำระหว่างค่าเริ่มต้นและค่าที่ระบุ |
|
จะมีผลก็ต่อเมื่อตั้งค่า height เป็น auto ในกรณีนี้ ค่าที่เกิน 1em จะได้รับการแก้ไขเป็น 1em และกำหนด padding-bottom เป็นค่า padding-top |
|
จะมีผลก็ต่อเมื่อตั้งค่า width เป็น auto ในกรณีนี้ ค่าที่เกิน 5em จะได้รับการแก้ไขเป็น 5em และกำหนด padding-right เป็นค่า padding-left. |
|
ไม่อนุญาตให้เอฟเฟกต์ภาพที่บิดเบี้ยว ปัจจุบันเรายอมรับเฉพาะการแปลแบบ 2 มิติและการปรับขนาดตามสัดส่วน |
คุณใช้คุณสมบัติ CSS ต่อไปนี้ได้ตามปกติ
font-kerning
font-optical-sizing
font-stretch
font-synthesis-weight
font-synthesis-style
font-synthesis-small-caps
font-feature-settings
forced-color-adjust
text-rendering
align-self
anchor-name aspect-ratio
border
(และพร็อพเพอร์ตี้border-*
ทั้งหมด)clear
color-scheme
contain
contain-intrinsic-width
contain-intrinsic-height
container-name
container-type
counter-*
flex-*
float
height
isolation
justify-self
left
order
orphans
outline-*
(ยกเว้นที่ระบุไว้ก่อนหน้านี้สำหรับoutline-offset
)overflow-anchor
overscroll-behavior-*
page
position
position-anchor
content-visibility
right
scroll-margin-*
scroll-padding-*
text-spacing-trim
top
visibility
x
y
ruby-position
user-select
width
will-change
z-index
นอกจากนี้ คุณยังใช้พร็อพเพอร์ตี้เทียบเท่าในเชิงตรรกะทั้งหมดได้ (เช่น inline-size
เทียบเท่ากับ width
) โดยใช้กฎเดียวกันกับค่าที่เท่ากัน
คลาสเทียม
มีคลาสเทียมพิเศษ 2 คลาสที่ช่วยให้จัดรูปแบบองค์ประกอบ <permission>
ตามสถานะได้ ดังนี้
:granted
: คลาสเทียม:granted
อนุญาตให้มีการจัดรูปแบบพิเศษเมื่อได้รับสิทธิ์:invalid
: คลาส Pseudo ของ:invalid
อนุญาตให้มีการจัดรูปแบบพิเศษเมื่อองค์ประกอบอยู่ในสถานะที่ไม่ถูกต้อง เช่น เมื่อแสดงใน iframe แบบข้ามต้นทาง
permission {
background-color: green;
}
permission:granted {
background-color: light-green;
}
/* Not supported during the origin trial. */
permission:invalid {
background-color: gray;
}
เหตุการณ์ JavaScript
องค์ประกอบ <permission>
มีไว้เพื่อใช้ร่วมกับ Permissions API
มีหลายเหตุการณ์ที่สามารถฟังได้ เช่น
onpromptdismiss
: เหตุการณ์นี้จะเกิดขึ้นเมื่อผู้ใช้ปิดข้อความแจ้งสิทธิ์ที่ทริกเกอร์โดยองค์ประกอบ (เช่น การคลิกปุ่มปิดหรือการคลิกนอกข้อความแจ้ง)onpromptaction
: เหตุการณ์นี้จะเกิดขึ้นเมื่อผู้ใช้ดำเนินการบางอย่างกับข้อความแจ้งเกี่ยวกับสิทธิ์ที่องค์ประกอบเรียกใช้ ซึ่งอาจไม่ได้หมายความว่าสถานะสิทธิ์มีการเปลี่ยนแปลงเสมอไป ผู้ใช้อาจดำเนินการที่รักษาสถานภาพปัจจุบันไว้ (เช่น ยังคงดำเนินการเพื่อให้สิทธิ์)onvalidationstatuschange
: เหตุการณ์นี้จะเริ่มทำงานเมื่อองค์ประกอบเปลี่ยนจาก"valid"
เป็น"invalid"
องค์ประกอบจะถือว่า"valid"
เมื่อเบราว์เซอร์เชื่อถือความสมบูรณ์ของสัญญาณหากผู้ใช้คลิกองค์ประกอบ และ"invalid"
ในกรณีอื่นๆ เช่น เมื่อองค์ประกอบถูกเนื้อหา HTML อื่นๆ บังอยู่บางส่วน
คุณลงทะเบียน Listener เหตุการณ์สำหรับเหตุการณ์เหล่านี้ได้โดยตรงในบรรทัดในโค้ด HTML
(<permission type="…" onpromptdismiss="alert('The prompt was dismissed');" />
)
หรือใช้ addEventListener()
บนองค์ประกอบ <permission>
ดังที่แสดงในตัวอย่างต่อไปนี้
<permission type="camera" />
<script>
const permission = document.querySelector('permission');
permission.addEventListener('promptdismiss', showCameraWarning);
function showCameraWarning() {
// Show warning that the app isn't fully usable
// unless the camera permission is granted.
}
const permissionStatus = await navigator.permissions.query({name: "camera"});
permissionStatus.addEventListener('change', () => {
// Run the check when the status changes.
if (permissionStatus.state === "granted") {
useCamera();
}
});
// Run the initial check.
if (permissionStatus.state === "granted") {
useCamera();
}
</script>
การตรวจหาฟีเจอร์
หากเบราว์เซอร์ไม่สนับสนุนองค์ประกอบ HTML เบราว์เซอร์จะไม่แสดงองค์ประกอบนั้น ซึ่งหมายความว่าหากคุณมีเอลิเมนต์ <permission>
ในโค้ด HTML จะไม่มีอะไรเกิดขึ้นหากเบราว์เซอร์ไม่ทราบ คุณอาจยังคงต้องการตรวจหาการรองรับโดยใช้ JavaScript เช่น เพื่อสร้างข้อความแจ้งเกี่ยวกับสิทธิ์ที่ทริกเกอร์ผ่านการคลิก <button>
ปกติ
if ('HTMLPermissionElement' in window) {
// The `<permission>` element is supported.
}
ช่วงทดลองใช้จากต้นทาง
หากต้องการลองใช้องค์ประกอบ <permission>
ในเว็บไซต์กับผู้ใช้จริง ให้ลงชื่อสมัครใช้ช่วงทดลองใช้จากต้นทาง
อ่านเริ่มต้นใช้งานช่วงทดลองใช้จากต้นทางเพื่อดูวิธีเตรียมเว็บไซต์เพื่อใช้ช่วงทดลองใช้จากต้นทาง ช่วงทดลองใช้จากต้นทางจะเริ่มต้นตั้งแต่ Chrome 126 ถึง 131 (19 กุมภาพันธ์ 2025)
ข้อมูลประชากร
สำรวจการสาธิตและดูซอร์สโค้ดใน GitHub นี่คือภาพหน้าจอของประสบการณ์ในเบราว์เซอร์ที่รองรับ
ความคิดเห็น
เรายินดีรับฟังความคิดเห็นว่า <permission>
ทำงานอย่างไรสำหรับกรณีการใช้งานของคุณ โปรดตอบกลับปัญหาในที่เก็บหรือส่งไฟล์ใหม่ได้ตามต้องการ สัญญาณสาธารณะในที่เก็บสำหรับองค์ประกอบ <permission>
จะทำให้เราและเบราว์เซอร์อื่นๆ ทราบว่าคุณสนใจ
คำถามที่พบบ่อย
- วิธีนี้ดีกว่า
<button>
ปกติที่จับคู่กับ Permissions API อย่างไร การคลิก<button>
เป็นท่าทางสัมผัสของผู้ใช้ แต่เบราว์เซอร์ไม่มีวิธียืนยันว่า<button>
เชื่อมต่อกับคำขออนุญาต หากผู้ใช้คลิก<permission>
เบราว์เซอร์จะมั่นใจได้ว่าการคลิกนั้นเกี่ยวข้องกับคำขอสิทธิ์ ซึ่งช่วยให้เบราว์เซอร์อำนวยความสะดวกในการดำเนินการ ที่อาจจะมีความเสี่ยงมากขึ้นได้ เช่น ช่วยให้ผู้ใช้ยกเลิกการบล็อกสิทธิ์ได้ง่ายๆ - จะเกิดอะไรขึ้นหากเบราว์เซอร์อื่นๆ ไม่รองรับองค์ประกอบ
<permission>
องค์ประกอบ<permission>
สามารถใช้เป็นการเพิ่มประสิทธิภาพแบบต่อเนื่องได้ คุณใช้ขั้นตอนการให้สิทธิ์แบบคลาสสิกในเบราว์เซอร์ที่ไม่รองรับได้ เช่น อิงตามการคลิก<button>
ปกติ ทีมสิทธิ์ก็กำลังพัฒนา Polyfill เหมือนกัน ติดดาวที่เก็บ GitHub เพื่อรับการแจ้งเตือนเมื่อพร้อมใช้งาน - ได้มีการพูดคุยกับผู้ให้บริการเบราว์เซอร์รายอื่นไหม มีการพูดคุยกันเรื่ององค์ประกอบ
<permission>
อย่างหนักที่ W3C TPAC ในปี 2023 ในเซสชันกลุ่มย่อย คุณสามารถอ่านบันทึกของเซสชันสาธารณะ ทีม Chrome ยังได้ขอตำแหน่งมาตรฐานอย่างเป็นทางการจากผู้ให้บริการทั้ง 2 รายด้วย โปรดดูที่ส่วนลิงก์ที่เกี่ยวข้อง องค์ประกอบ<permission>
เป็นหัวข้อที่มีการพูดคุยกับเบราว์เซอร์อื่นๆ อย่างต่อเนื่องและเราหวังว่าจะทำให้องค์ประกอบดังกล่าวเป็นไปตามมาตรฐาน - จริงๆ แล้วสิ่งนี้ควรเป็นองค์ประกอบที่เป็นโมฆะหรือไม่ และยังคงมีการถกเถียงกันอย่างต่อเนื่องว่า
<permission>
ควรเป็นองค์ประกอบที่เป็นโมฆะหรือไม่ หากมีความคิดเห็น ให้แจ้งปัญหาให้เราทราบ
ลิงก์ที่เกี่ยวข้อง
กิตติกรรมประกาศ
เอกสารฉบับนี้ได้รับการตรวจสอบโดย Balázs Engedy, Thomas Nguyen, Penelope McLachlan, Marian Harbach, David Warren และ Rachel Andrew