การสร้างส่วนขยายเบราว์เซอร์เป็นเรื่องง่าย แต่การทำให้แน่ใจว่าทุกคนสามารถเข้าถึงได้จะต้องใช้ความระมัดระวังและทักษะอย่างรอบคอบ
ส่วนขยายของคุณอาจดึงข้อมูลได้อย่างไร้ที่ติและมีอินเทอร์เฟซที่สวยงาม แต่หากผู้ใช้โปรแกรมอ่านหน้าจอหรือตัวนำทางแป้นพิมพ์ไม่สามารถใช้งานได้ แสดงว่าคุณได้ยกเว้นผู้ที่อาจเป็นผู้ใช้จำนวนมากโดยไม่ได้ตั้งใจ
ในบทความนี้ เราจะตรวจสอบส่วนขยายเบราว์เซอร์ Chrome เพื่อหาปัญหาด้านการเข้าถึงและเปลี่ยนให้เป็นประสบการณ์ที่ครอบคลุมซึ่งเหมาะกับทุกคน
สารบัญ
-
เหตุใดการเข้าถึงจึงมีความสำคัญในส่วนขยายเบราว์เซอร์
-
วิธีดำเนินการทดสอบการเข้าถึงส่วนขยายเบราว์เซอร์ด้วยตนเอง
-
วิธีใช้การปรับปรุงการเข้าถึงส่วนขยายเบราว์เซอร์
-
วิธีดำเนินการทดสอบการเข้าถึงส่วนขยายเบราว์เซอร์อัตโนมัติ
-
แนวทางปฏิบัติที่ดีที่สุดสำหรับส่วนขยายเบราว์เซอร์ที่สามารถเข้าถึงได้
-
บทสรุป
เหตุใดการเข้าถึงจึงมีความสำคัญในส่วนขยายเบราว์เซอร์
ทุกการคลิกในส่วนขยายเบราว์เซอร์ของคุณเป็นโอกาสในการเพิ่มศักยภาพให้กับผู้ใช้หรือยกเว้นพวกเขาหากการเข้าถึงไม่ได้เป็นส่วนหนึ่งของการออกแบบของคุณ
ส่วนขยายเบราว์เซอร์เผชิญกับความท้าทายในการเข้าถึงที่ไม่เหมือนใคร เนื่องจากส่วนขยายเหล่านี้จะต้องแทรกฟังก์ชันการทำงานลงในหน้าเว็บที่มีอยู่ ในขณะเดียวกันก็รักษาอินเทอร์เฟซที่สามารถเข้าถึงได้ของตัวเองไว้ ซึ่งเป็นความรับผิดชอบสองประการที่อาจทำให้เกิดอุปสรรคที่อาจเกิดขึ้นได้ ตัวอย่างเช่น ป๊อปอัปที่ดักจับผู้ใช้แป้นพิมพ์หรือไม่สามารถสื่อสารกับโปรแกรมอ่านหน้าจอได้อาจทำให้ส่วนขยายใช้งานไม่ได้
องค์การอนามัยโลกระบุว่า ด้วยจำนวนผู้คนกว่าพันล้านคนที่อาศัยอยู่กับคนพิการ การออกแบบที่สามารถเข้าถึงได้ช่วยปลดล็อกฐานผู้ใช้ที่กว้างขวางและสร้างประสบการณ์ที่ดีขึ้นสำหรับทุกคน

สำหรับส่วนขยายเบราว์เซอร์ อุปสรรคในการเข้าถึงมักปรากฏดังนี้:
-
ทางตันของการนำทางด้วยแป้นพิมพ์ :ป๊อปอัปและอินเทอร์เฟซที่ดักจับหรือยกเว้นผู้ใช้แป้นพิมพ์
-
การโต้ตอบแบบเงียบ :ไม่มีป้ายกำกับและคำอธิบาย เช่น ปุ่มที่มีเพียงไอคอนที่โปรแกรมอ่านหน้าจอประกาศเป็น "ปุ่มที่ไม่มีป้ายกำกับ" ทำให้ผู้ใช้คาดเดาถึงจุดประสงค์ของปุ่มได้
-
การอัปเดตเนื้อหาแบบไดนามิกที่ไม่ได้แจ้งล่วงหน้า :การเปลี่ยนแปลงเนื้อหาที่เกิดขึ้นโดยไม่มีการรับรู้ถึงเทคโนโลยีช่วยเหลือ เช่น การอัปเดตใบเสนอราคาโดยไม่แจ้งให้โปรแกรมอ่านหน้าจอทราบถึงการเปลี่ยนแปลง รวมถึงการตอบกลับที่ขาดหายไปสำหรับสถานะการโหลดหรือข้อผิดพลาด
-
ข้อขัดแย้งในการรวมบริบท :ส่วนขยายที่แก้ไขหน้าเว็บที่มีอยู่อาจทำให้คุณลักษณะการเข้าถึงของหน้าเสียหายหรือแนะนำองค์ประกอบที่ขัดแย้งกับรูปแบบการนำทางที่กำหนดไว้
ด้วยการทำความเข้าใจอุปสรรคเหล่านี้ นักพัฒนาซอฟต์แวร์จึงสามารถดำเนินการตามขั้นตอนที่กำหนดเป้าหมายเพื่อทดสอบและปรับปรุงการเข้าถึงส่วนขยายของตนได้
วิธีดำเนินการทดสอบการเข้าถึงส่วนขยายเบราว์เซอร์ด้วยตนเอง
แม้ว่าเครื่องมืออัตโนมัติจะพบปัญหาที่ชัดเจน แต่การทดสอบด้วยตนเองจะเผยให้เห็นประสบการณ์จริงของผู้ใช้ ต่อไปนี้เป็นวิธีประเมินการเข้าถึงส่วนขยายของคุณอย่างเป็นระบบ
การทดสอบการนำทางด้วยแป้นพิมพ์
ถอดเมาส์ออกแล้วลองใช้ส่วนขยายโดยใช้แป้นพิมพ์เท่านั้น นำทางโดยใช้
ชัดเจนเสมอหรือไม่ว่าองค์ประกอบใดมีโฟกัส
คุณสามารถเปิดใช้งานปุ่มด้วย
ผู้ใช้สามารถออกจากกล่องโต้ตอบโมดอลหรือเมนูแบบเลื่อนลงได้หรือไม่
หากคุณพบทางตันหรือจุดสับสน ผู้ใช้แป้นพิมพ์ก็จะเผชิญกับอุปสรรคเดียวกัน
ใช้โปรแกรมอ่านหน้าจอในตัวของระบบปฏิบัติการเพื่อนำทางส่วนขยายของคุณและฟังสิ่งที่ประกาศ บน macOS ให้เปิดใช้งาน VoiceOver; บน Windows ให้ใช้โปรแกรมผู้บรรยาย บน Linux ลองใช้ Orca ป>
วัตถุประสงค์ของแต่ละองค์ประกอบมีความชัดเจนหรือไม่ เช่น ปุ่มที่ประกาศว่า "สร้างคำแนะนำใหม่" แทนที่จะเป็นเพียง "ปุ่ม"
มีการถ่ายทอดส่วนหัว รายการ และโครงสร้างอื่นๆ อย่างเหมาะสมหรือไม่
ผู้ใช้เข้าใจหรือไม่เมื่อมีการโหลด เลือก หรือเปลี่ยนแปลงเนื้อหา
ขั้นตอนการทดสอบนี้มักจะเปิดเผยช่องว่างระหว่างสิ่งที่คุณตั้งใจจะสื่อสารและสิ่งที่เข้าถึงผู้ใช้จริงๆ
ตรวจสอบส่วนขยายของคุณในบริบทภาพต่างๆ ใช้เครื่องมือสำหรับนักพัฒนา เช่น Contrast Checker ของ WebAIM เพื่อตรวจสอบว่าข้อความตรงตามอัตราส่วนคอนทราสต์ 4.5:1 ของ WCAG เพื่อให้อ่านง่าย ทดสอบว่าส่วนขยายของคุณปรากฏในการตั้งค่าคอนทราสต์สูงของระบบอย่างไร ตรวจสอบให้แน่ใจว่า:
ฟังก์ชันการทำงานยังคงใช้งานได้เมื่อซูม 200%
ข้อมูลไม่ได้ถูกถ่ายทอดผ่านสีเพียงอย่างเดียว เช่น การใช้ป้ายข้อความควบคู่ไปกับตัวบ่งชี้รหัสสี
การทดสอบด้วยตนเองเหล่านี้จะเปิดเผยปัญหาการเข้าถึงที่สำคัญ ซึ่งปูทางไปสู่การปรับปรุงตามเป้าหมายเพื่อทำให้ส่วนขยายของคุณครอบคลุม
ลองนึกภาพการรีเฟรชหน้าเว็บโดยไม่รู้ว่ามันเกิดขึ้น หรือคลิกปุ่มโดยไม่มีจุดประสงค์ที่ชัดเจน การทดสอบด้วยตนเองที่ดำเนินการข้างต้นเผยให้เห็นว่านั่นเป็นประสบการณ์สำหรับผู้ใช้โปรแกรมอ่านหน้าจอของส่วนขยายของเราท่ามกลางปัญหาการเข้าถึงที่สำคัญสามประการนี้:
ป้ายกำกับปุ่มหายไป :ปุ่มลูกเต๋ามีเพียงรูปภาพที่มีข้อความแสดงแทน "ไอคอนลูกเต๋า" ซึ่งขาดคุณสมบัติที่โปรแกรมอ่านหน้าจอบริบทต้องการ
การอัปเดตไดนามิกแบบเงียบ :เมื่อมีการโหลดคำแนะนำใหม่ โปรแกรมอ่านหน้าจอจะไม่ทราบว่าเนื้อหามีการเปลี่ยนแปลง
ไม่มีสถานะการโหลด :เมื่อดึงคำแนะนำ ผู้ใช้จะไม่ได้รับข้อเสนอแนะว่ามีบางอย่างเกิดขึ้น
มาแก้ไขปัญหาก่อนทำการทดสอบอัตโนมัติกัน
เราจะเพิ่ม
เราจะเพิ่ม
เราจะเพิ่ม
เมื่อแก้ไขปัญหาการทดสอบด้วยตนเองแล้ว ขณะนี้เราสามารถดำเนินการทดสอบส่วนขยายเดียวกันโดยอัตโนมัติได้
การทดสอบด้วยตนเองให้ข้อมูลเชิงลึกที่สำคัญ แต่เครื่องมืออัตโนมัติสามารถตรวจจับปัญหาทั่วไปได้อย่างมีประสิทธิภาพและให้การตรวจสอบอย่างต่อเนื่อง ป>
ตัวตรวจสอบการเข้าถึงส่วนขยายนี้ทำให้การทดสอบง่ายขึ้นโดยการวิเคราะห์อินเทอร์เฟซส่วนขยายของเบราว์เซอร์ เช่น ป๊อปอัปและสคริปต์เนื้อหา เพื่อให้สอดคล้องกับ WCAG โดยจัดการกับความท้าทายเฉพาะ เช่น ข้อจำกัดของป๊อปอัปและข้อขัดแย้งในการแทรกเนื้อหา
วิธีใช้เครื่องมือตรวจสอบการเข้าถึงส่วนขยาย:
บีบอัดโฟลเดอร์ส่วนขยายเบราว์เซอร์ของคุณให้เป็นไฟล์ .zip
อัปโหลดไฟล์ .zip บน https://extensiona11ychecker.vercel.app/
ตรวจสอบรายงานที่สร้างขึ้นสำหรับการละเมิดการเข้าถึงที่เฉพาะเจาะจง และใช้การแก้ไขที่แนะนำ
ดังที่แสดงใน GIF ด้านบน ขั้นตอนการทำงานนี้ช่วยสร้างการเข้าถึงให้เป็นส่วนหนึ่งของกระบวนการพัฒนาของคุณเป็นประจำ แทนที่จะเป็นสิ่งที่ต้องคำนึงถึงในภายหลัง
ด้วยการทดสอบอัตโนมัติ เราจะมาสำรวจแนวทางปฏิบัติที่ดีที่สุดเพื่อให้แน่ใจว่าส่วนขยายของคุณยังคงสามารถเข้าถึงได้ตลอดการพัฒนา
เราได้เปลี่ยนส่วนขยายเบราว์เซอร์ตัวอย่างที่สร้างคำแนะนำจากเครื่องมือที่ใช้งานได้แต่ไม่สามารถเข้าถึงได้ให้กลายเป็นส่วนขยายที่ครอบคลุมซึ่งเหมาะสำหรับทุกคน ป>
จากการปรับปรุงของเรา ต่อไปนี้เป็นหลักการสำคัญสี่ประการในการออกแบบส่วนขยายเบราว์เซอร์ที่สามารถเข้าถึงได้:
เริ่มต้นด้วยโครงสร้าง HTML ที่เหมาะสมเสมอ โดยใช้องค์ประกอบที่เหมาะสม (เช่น สำหรับการดำเนินการ "สร้างคำแนะนำ" ลำดับชั้นของส่วนหัวที่เหมาะสม) ก่อนที่จะเพิ่มแอตทริบิวต์ ARIA
ตรวจสอบให้แน่ใจว่าองค์ประกอบเชิงโต้ตอบทุกรายการมีวัตถุประสงค์ที่ชัดเจนผ่าน
องค์ประกอบเชิงโต้ตอบทุกชิ้นจะต้องสื่อถึงวัตถุประสงค์อย่างมีประสิทธิภาพ ผู้ใช้จำเป็นต้องเข้าใจ:
เกิดอะไรขึ้น (เช่น “กำลังโหลดคำแนะนำใหม่…” สำหรับสถานะการโหลด)
เกิดอะไรขึ้น (เช่น “ไม่สามารถโหลดคำแนะนำ” สำหรับข้อผิดพลาด)
สิ่งที่เปลี่ยนแปลงไป (เช่น ภูมิภาค aria-live สำหรับเนื้อหาที่อัปเดต)
ฟังก์ชันการทำงานทั้งหมดต้องใช้งานได้ผ่านการนำทางด้วยแป้นพิมพ์ สิ่งนี้ต้องมีการทดสอบด้วย
ให้ตัวบ่งชี้จุดโฟกัสที่ชัดเจนและรอบคอบซึ่งจะคาดเดาได้ผ่านอินเทอร์เฟซของคุณพร้อมวิธีที่ชัดเจนในการออกจากโมดัลหรือการโต้ตอบที่ซับซ้อน
เคารพตัวเลือกของผู้ใช้โดยรองรับการตั้งค่าขนาดแบบอักษรของระบบ และไม่แทนที่รูปแบบสีที่ผู้ใช้กำหนดโดยไม่จำเป็น
เมื่อส่วนขยายของคุณแก้ไขหน้าเว็บที่มีอยู่ ตรวจสอบให้แน่ใจว่าคุณไม่ทำลายคุณลักษณะการเข้าถึง การจัดการโฟกัส และรูปแบบการนำทางที่กำหนดไว้ของเพจ ตรวจสอบให้แน่ใจว่าองค์ประกอบใหม่ที่คุณฉีดเป็นไปตามมาตรฐานการเข้าถึง
ดังที่เราได้เห็นในส่วนขยายการสร้างคำแนะนำของเรา การจัดการกับปัญหาด้านการเข้าถึงได้เปลี่ยนเครื่องมือที่ใช้งานได้ให้กลายเป็นเครื่องมือที่ครอบคลุม
อย่างไรก็ตาม แม้ว่าการแก้ไขปัญหาในส่วนขยายที่มีอยู่จะเป็นประโยชน์ แต่แนวทางที่มีประสิทธิภาพมากที่สุดคือการปล่อยให้ความสามารถในการเข้าถึงเป็นแนวทางในการตัดสินใจในการออกแบบและการพัฒนาของคุณจากบรรทัดแรกของโค้ด
เมื่อเริ่มต้นโครงการส่วนขยายเบราว์เซอร์ถัดไปของคุณ ให้ถาม:
ใครบางคนจะนำทางสิ่งนี้โดยใช้เพียงคีย์บอร์ดได้อย่างไร
จุดประสงค์ขององค์ประกอบเชิงโต้ตอบทุกรายการชัดเจนต่อโปรแกรมอ่านหน้าจอหรือไม่
ผู้ใช้จะเข้าใจสิ่งที่เกิดขึ้นระหว่างสถานะการโหลดได้อย่างไร
นี่คือแหล่งข้อมูลที่เป็นประโยชน์บางส่วน
เอกสารการเข้าถึงส่วนขยายของ Chrome
ตัวตรวจสอบการเข้าถึงส่วนขยาย
แนวทางการเข้าถึงเนื้อหาเว็บ (WCAG) 2.1
เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น 06 เพื่อย้ายไปมาระหว่างองค์ประกอบ 14 หรือ 27รหัส> เพื่อเปิดใช้งานปุ่ม และปุ่มลูกศรภายในส่วนประกอบ ป>
39 หรือ 46รหัส> ตามที่คาดไว้?
การประเมินโปรแกรมอ่านหน้าจอ
การตรวจสอบการเข้าถึงด้วยภาพ
วิธีใช้การปรับปรุงการเข้าถึงส่วนขยายเบราว์เซอร์
วิธีแก้ไขป้ายกำกับปุ่มที่หายไปและข้อความแสดงแทน
56 เพื่ออธิบายวัตถุประสงค์ของปุ่มอย่างชัดเจน และระบุข้อความแสดงแทนที่สื่อความหมายสำหรับไอคอน 63รหัส> แอตทริบิวต์ช่วยให้มั่นใจว่ารูปภาพได้รับการตกแต่งโดยโปรแกรมอ่านหน้าจอ<!--Before: Unclear Button Purpose and icon alt text-->
<button class="dice-button" id="generate-advice-btn">
<img src="/icons/icon-dice.png" alt="Dice icon">
</button>
<!--After: Clear, Accessible Button and icon alt text-->
<button class="dice-button" id="generate-advice-btn" aria-label="Generate new advice">
<img src="/icons/icon-dice.png" alt="A dice icon with green background" role="presentation">
</button>
วิธีจัดการกับการอัปเดตไดนามิกแบบเงียบ
71 เพื่อให้โปรแกรมอ่านหน้าจอประกาศคำแนะนำใหม่และ 86 เพื่อให้แน่ใจว่าได้อ่านใบเสนอราคาทั้งหมดแล้ว นั่นคือ:<!--Before: Silent Dynamic Updates-->
<p class="advice-quote" id="advice-quote">
"It is easy to sit up and take notice, what's difficult is getting up and taking action."
</p>
<!--After: Announced Content Changes-->
<p class="advice-quote" id="advice-quote" aria-live="polite" aria-atomic="true">
"It is easy to sit up and take notice, what's difficult is getting up and taking action."
</p>
วิธีจัดการกับสถานะที่ไม่มีการโหลด
90 ฟังก์ชั่นเพื่อแสดงตัวบ่งชี้การโหลด เพื่อให้มั่นใจว่าผู้ใช้โปรแกรมอ่านหน้าจอจะได้รับการแจ้งเตือนเมื่อมีการดึงเนื้อหา:// Before: No Loading Feedback
function requestNewAdvice() {
chrome.runtime.sendMessage({ action: "fetchAdvice" }, (response) => {
// No loading indicators...
});
}
// After: Accessible Loading States
function requestNewAdvice() {
setLoadingState(true);
chrome.runtime.sendMessage({ action: "fetchAdvice" }, (response) => {
setLoadingState(false);
// Handle response with proper announcements...
});
}
function setLoadingState(isLoading) {
if (isLoading) {
// Disable button and show loading text
generateAdviceBtn.disabled = true;
generateAdviceBtn.setAttribute('aria-label', 'Loading new advice...');
// Show loading text in the advice quote element
adviceQuoteElement.textContent = "Loading new advice...";
} else {
// Re-enable button
generateAdviceBtn.disabled = false;
generateAdviceBtn.setAttribute('aria-label', 'Generate new advice');
}
}
วิธีทดสอบการเข้าถึงส่วนขยายเบราว์เซอร์อัตโนมัติ

แนวทางปฏิบัติที่ดีที่สุดสำหรับส่วนขยายเบราว์เซอร์ที่สามารถเข้าถึงได้
ความหมาย HTML และป้ายกำกับที่ชัดเจน
103 , 115รหัส> หรือข้อความที่มองเห็นได้ซึ่งอธิบายการกระทำ
การสื่อสารที่ชัดเจนทุกขั้นตอน
การเข้าถึงคีย์บอร์ดที่สมบูรณ์
122 , 135รหัส> , 142รหัส> และปุ่มลูกศรตามความเหมาะสม
การตั้งค่าผู้ใช้และการพิจารณาสคริปต์เนื้อหา
บทสรุป