แอพมือถือเป็นเครื่องมือสำคัญในชีวิตประจำวัน ทำให้การเข้าถึงมีความสำคัญสูงสุด อย่างไรก็ตาม แอปจำนวนมากยังคงไม่ได้มอบประสบการณ์ที่ครอบคลุมสำหรับผู้พิการ
บทความนี้เน้นย้ำถึงความท้าทายในการช่วยการเข้าถึงทั่วไปเก้าประการในแอพมือถือ และแสดงให้เห็นว่าคุณสมบัติ SwiftUI สามารถช่วยนักพัฒนาแก้ไขปัญหาเหล่านี้ได้อย่างมีประสิทธิภาพได้อย่างไร
ความท้าทายแต่ละรายการจะจับคู่กับโซลูชัน SwiftUI โค้ดตัวอย่าง และเคล็ดลับในการทดสอบเพื่อเป็นแนวทางแก่นักพัฒนาในการสร้างแอปที่สามารถเข้าถึงได้และใช้งานง่าย
สารบัญ
-
ปัญหาการช่วยสำหรับการเข้าถึงแอปบนมือถือและโซลูชัน SwiftUI
-
ป้ายกำกับและคำอธิบายหายไป
-
คอนทราสต์ของสีไม่เพียงพอ
-
เป้าหมายสัมผัสขนาดเล็ก
-
การนำทางที่ไม่สามารถเข้าถึงได้
-
ขาดคำติชมสำหรับการดำเนินการ
-
ส่วนติดต่อผู้ใช้ที่ซับซ้อนหรือสับสน
-
ขาดการสนับสนุนเทคโนโลยีช่วยเหลือ
-
คุณลักษณะการเข้าถึงที่ใช้งานไม่ดี
-
ตัวเลือกการปรับแต่งไม่เพียงพอ
-
ข้อมูลอ้างอิง
-
ปัญหาการเข้าถึงแอปบนมือถือและโซลูชัน SwiftUI
ไม่มีป้ายกำกับและคำอธิบาย
-
ความท้าทาย :แอพจำนวนมากไม่มีป้ายกำกับหรือคำอธิบายที่เหมาะสมสำหรับปุ่ม รูปภาพ และองค์ประกอบแบบโต้ตอบอื่นๆ ทำให้โปรแกรมอ่านหน้าจอสื่อสารวัตถุประสงค์ของตนกับผู้ใช้ที่มีความบกพร่องทางการมองเห็นได้ยาก หากไม่มีป้ายกำกับเหล่านี้ ผู้ใช้อาจประสบปัญหาในการทำความเข้าใจฟังก์ชันการทำงานของแอป
-
โซลูชัน SwiftUI :
07ของ SwiftUI ตัวแก้ไขช่วยให้นักพัฒนาสามารถกำหนดป้ายกำกับที่ชัดเจนและสื่อความหมายให้กับองค์ประกอบแบบโต้ตอบได้ ป้ายกำกับเหล่านี้ปรับปรุงการนำทางและความเข้าใจโดยให้บริบทที่จำเป็นแก่โปรแกรมอ่านหน้าจอ -
ตัวอย่าง :
Label("Shop", systemImage: "cart") .accessibilityLabel("Go to Shop") -
การทดสอบ :เปิดใช้งาน VoiceOver บนอุปกรณ์ iOS นำทางผ่านแอพ และตรวจสอบให้แน่ใจว่าแต่ละองค์ประกอบมีป้ายกำกับที่ถูกต้อง VoiceOver ควรอ่านป้ายกำกับอย่างชัดเจนเพื่อช่วยให้ผู้ใช้เข้าใจวัตถุประสงค์ของแต่ละองค์ประกอบโดยไม่ต้องมีคำอธิบายเพิ่มเติม
คอนทราสต์ของสีไม่เพียงพอ
-
ความท้าทาย :ความแตกต่างต่ำระหว่างสีข้อความและพื้นหลังอาจทำให้ผู้ใช้ที่มีความบกพร่องทางการมองเห็นอ่านเนื้อหาได้ยาก โดยเฉพาะผู้ที่มีความบกพร่องในการมองเห็นสีหรือมองเห็นเลือนลาง
-
โซลูชัน SwiftUI :ใช้สีของระบบไดนามิกของ SwiftUI (
12และ24รหัส> ) ซึ่งจะปรับให้เข้ากับการตั้งค่าโหมดสว่างหรือมืดบนอุปกรณ์โดยอัตโนมัติ เพื่อให้มั่นใจว่าสามารถอ่านได้ดี -
ตัวอย่าง :
Text("Shop") .foregroundColor(.primary) // Adapts to light or dark mode automatically -
หากจำเป็นต้องใช้สีที่กำหนดเอง ให้ทดสอบคอนทราสต์ของสีกับมาตรฐาน WCAG โดยใช้เครื่องมือ เช่น Color Contrast Analyzer
-
การทดสอบ :ใช้ตัวตรวจสอบการเข้าถึงของ Xcode เพื่อตรวจสอบคอนทราสต์ และให้แน่ใจว่าข้อความยังคงสามารถอ่านได้ทั้งในโหมดสว่างและโหมดมืด หลักเกณฑ์ของ WCAG แนะนำให้มีอัตราส่วนคอนทราสต์ขั้นต่ำที่ 4.5:1 สำหรับข้อความปกติ
เป้าหมายการสัมผัสขนาดเล็ก
-
ความท้าทาย :ปุ่มขนาดเล็กหรือพื้นที่สัมผัสอื่นๆ อาจเป็นเรื่องยากสำหรับผู้ใช้ที่มีความบกพร่องทางการเคลื่อนไหวในการโต้ตอบอย่างแม่นยำ องค์ประกอบที่เล็กเกินไปอาจต้องการความแม่นยำมากกว่าที่ผู้ใช้บางรายสามารถให้ได้
-
โซลูชัน SwiftUI :กำหนดขนาดการสัมผัสขั้นต่ำโดยเพิ่มช่องว่างภายในหรือใช้
37เพื่อให้แน่ใจว่ามีขนาดเป้าหมายการสัมผัสที่สะดวกสบาย -
ตัวอย่าง :
Button(action: { /* Action */ }) { Text("Tap Me") .frame(minWidth: 44, minHeight: 44) }.padding() -
การทดสอบ :โต้ตอบกับองค์ประกอบระบบสัมผัสในแอปบนอุปกรณ์ iOS ด้วยตนเอง ตรวจสอบให้แน่ใจว่าสามารถแตะได้อย่างง่ายดายโดยไม่ต้องใช้ความพยายามอย่างแม่นยำ ตรวจสอบขนาดเป้าหมายการสัมผัสด้วยตัวตรวจสอบการเข้าถึงเพื่อยืนยันว่าตรงตามขนาดขั้นต่ำที่แนะนำ (44x44 จุด)
การนำทางที่ไม่สามารถเข้าถึงได้
-
ความท้าทาย :แอพที่มีความสามารถในการนำทางที่จำกัดอาจทำให้ผู้ใช้ที่ต้องอาศัยโปรแกรมอ่านหน้าจอหรือคีย์บอร์ดหงุดหงิด หากไม่มีลำดับการอ่านที่ชัดเจน การนำทางผ่านอินเทอร์เฟซจะกลายเป็นเรื่องท้าทาย
-
เทคนิค SwiftUI สำหรับการนำทางที่สามารถเข้าถึงได้ :
-
องค์ประกอบกลุ่ม ด้วย
43:รวมองค์ประกอบที่เกี่ยวข้องไว้ในหน่วยเดียวที่เข้าถึงได้เพื่อการนำทางที่คล่องตัวยิ่งขึ้นVStack { Text("Profile") Image("profile_picture") } .accessibilityElement(children: .combine) -
ตั้งโฟกัส ด้วย
57:ควบคุมโฟกัสบนองค์ประกอบเฉพาะโดยทางโปรแกรมText("Special Announcement") .accessibilityFocused($isFocused) -
การกระทำที่กำหนดเอง ด้วย
64:เพิ่มการดำเนินการเฉพาะสำหรับการควบคุมแบบโต้ตอบ เช่น แถบเลื่อนหรือสเต็ปเปอร์Slider(value: $value) .accessibilityAction(named: "Increase") { value += 10 } -
ซ่อนองค์ประกอบตกแต่ง ด้วย
75:แยกภาพที่ไม่จำเป็นออกจากโปรแกรมอ่านหน้าจอImage("decorative_image") .accessibilityHidden(true)
-
-
การทดสอบ :เปิดใช้งาน VoiceOver และใช้ท่าทางปัดเพื่อยืนยันลำดับโฟกัสที่ต้องการ นอกจากนี้ ให้ใช้แป้นพิมพ์ที่เชื่อมต่อหรือตัวควบคุมสวิตช์เพื่อทดสอบการเปลี่ยนผ่านที่ราบรื่นและยืนยันความสามารถในการนำทาง
ขาดคำติชมสำหรับการดำเนินการ
-
ความท้าทาย :หากไม่มีข้อเสนอแนะ ผู้ใช้ที่มีความบกพร่องทางการมองเห็นหรือการได้ยินอาจประสบปัญหาในการยืนยันว่าการดำเนินการเสร็จสิ้นแล้วหรือไม่ เสียงตอบรับ เช่น สัญญาณสัมผัส การได้ยิน หรือภาพสามารถปรับปรุงการใช้งานได้
-
โซลูชัน SwiftUI :ใช้
80เพื่อให้ข้อมูลเพิ่มเติมเกี่ยวกับการกระทำที่จะเกิดขึ้น -
ตัวอย่าง :
Button("Submit") { // Submit action }.accessibilityHint("Submits the form") -
การทดสอบ :ใช้ VoiceOver เพื่อให้แน่ใจว่าคำแนะนำจะอ่านทันทีหลังป้ายกำกับ ตรวจสอบว่าผู้ใช้สามารถเข้าใจว่าแต่ละปุ่มทำอะไรได้โดยไม่ต้องมีคำอธิบายเพิ่มเติม
อินเทอร์เฟซผู้ใช้ที่ซับซ้อนหรือสับสน
-
ความท้าทาย :อินเทอร์เฟซที่รกอาจมีล้นหลาม โดยเฉพาะอย่างยิ่งสำหรับผู้ใช้ที่มีความบกพร่องทางสติปัญญา ซึ่งอาจประสบปัญหาในการนำทางหรือประมวลผลข้อมูลอย่างมีประสิทธิภาพ
-
โซลูชัน SwiftUI :ลดความซับซ้อนของเลย์เอาต์และใช้
97เพื่อจัดระเบียบลำดับการอ่านอย่างมีเหตุผล -
ตัวอย่าง :
VStack { Text("Main Content") .accessibilitySortPriority(1) Button("Secondary Action") .accessibilitySortPriority(2) } -
การทดสอบ :ใช้ VoiceOver เพื่อตรวจสอบลำดับการอ่านเชิงตรรกะ และให้แน่ใจว่าเข้าถึงได้เฉพาะองค์ประกอบที่เกี่ยวข้องเท่านั้น ใช้
107เพื่อซ่อนองค์ประกอบตกแต่งที่ไม่เพิ่มข้อมูลที่มีความหมาย
ขาดการสนับสนุนเทคโนโลยีอำนวยความสะดวก
-
ความท้าทาย :การสนับสนุนที่ไม่เพียงพอสำหรับโปรแกรมอ่านหน้าจอหรือเทคโนโลยีช่วยเหลืออื่น ๆ อาจทำให้แอปใช้งานไม่ได้สำหรับผู้ใช้บางคน
-
โซลูชัน SwiftUI :จัดกลุ่มองค์ประกอบด้วย
116เพื่อการนำทางที่ต่อเนื่อง ซึ่งจะปรับปรุงความสามารถในการอ่านและการใช้งานสำหรับผู้ใช้โปรแกรมอ่านหน้าจอ -
ตัวอย่าง :
VStack { Text("Profile") Image("profile_picture") } .accessibilityElement(children: .combine) -
การทดสอบ :ตรวจสอบด้วย VoiceOver ว่าองค์ประกอบที่จัดกลุ่มได้รับการประกาศเป็นหน่วยเดียว ซึ่งปรับปรุงการไหลของการนำทางสำหรับผู้ใช้ที่มีความบกพร่องทางการมองเห็น
คุณลักษณะการเข้าถึงที่ใช้งานไม่ดี
-
ความท้าทาย :หากไม่มีการทดสอบและอัปเดตเป็นประจำ คุณลักษณะการเข้าถึงอาจลดลงเมื่อเวลาผ่านไป ซึ่งส่งผลเสียต่อประสบการณ์ผู้ใช้
-
โซลูชัน SwiftUI :การทดสอบเป็นประจำกับ VoiceOver และตัวตรวจสอบการเข้าถึงของ Xcode ช่วยรักษาฟังก์ชันการทำงานที่มีประสิทธิภาพ
-
การทดสอบ :ดำเนินการทดสอบเป็นประจำเพื่อตรวจหาการถดถอยหรือการปรับปรุงที่จำเป็นสำหรับการเข้าถึง ตรวจสอบการใช้งาน VoiceOver อีกครั้งหลังจากอัปเดต UI เพื่อยืนยันว่าฟีเจอร์ต่างๆ ยังคงมีประสิทธิภาพ
ตัวเลือกการปรับแต่งไม่เพียงพอ
-
ความท้าทาย :ตัวเลือกการปรับแต่งที่จำกัด เช่น ขนาดตัวอักษรหรือโทนสี จำกัดการใช้งานสำหรับผู้ใช้ที่มีความต้องการด้านภาพเฉพาะ
-
โซลูชัน SwiftUI :ใช้
129เพื่ออนุญาตการปรับขนาดข้อความตามการตั้งค่าที่ผู้ใช้ต้องการ -
ตัวอย่าง :
Text("Adjustable Text") .dynamicTypeSize(.xxxLarge) -
การทดสอบ :ปรับขนาดข้อความในการตั้งค่าการเข้าถึงของ iOS และตรวจสอบให้แน่ใจว่าข้อความของแอปปรับขนาดได้อย่างถูกต้องโดยไม่ตัดทอนหรือทับซ้อนกัน โดยคงไว้ซึ่งความสามารถในการอ่าน
ข้อมูลอ้างอิง
-
เอกสารสำหรับนักพัฒนา Apple:การเข้าถึง SwiftUI ป>
-
คู่มือที่ครอบคลุมเกี่ยวกับการเข้าถึงใน SwiftUI ครอบคลุมคุณสมบัติการเข้าถึงเช่น
139,143รหัส> ,157รหัส> และอีกมากมาย -
คู่มือการเข้าถึง SwiftUI
-
-
แนวทางปฏิบัติของ Apple Human Interface:การเข้าถึง ป>
-
แนวทางปฏิบัติที่ดีที่สุดของ Apple ในการออกแบบแอปที่สามารถเข้าถึงได้ รวมถึงการแนะนำคอนทราสต์ของสีและขนาดเป้าหมายการสัมผัส
-
แนวทางปฏิบัติของ Apple Human Interface:การช่วยการเข้าถึง
-
-
เครื่องวิเคราะห์คอนทราสต์สี ป>
-
เครื่องมือสำหรับการทดสอบอัตราส่วนคอนทราสต์เพื่อให้แน่ใจว่าการเข้าถึงสีเป็นไปตามมาตรฐาน WCAG
-
เครื่องวิเคราะห์คอนทราสต์สี
-
-
ตัวตรวจสอบ VoiceOver และการเข้าถึง ป>
-
เครื่องมือสำหรับทดสอบคุณลักษณะการเข้าถึงซึ่งมีอยู่ใน iOS และ Xcode เพื่อจำลองการใช้งานโปรแกรมอ่านหน้าจอและตรวจสอบคุณสมบัติการเข้าถึง
-
เอกสาร VoiceOver
-
เอกสารประกอบตัวตรวจสอบการเข้าถึง
-
-
จันดารานา เอ็น. และกาดา ต. (2024) ความท้าทายในการเข้าถึงในแอปพลิเคชันบนมือถือในปัจจุบัน:ภาพรวมที่ครอบคลุม ป>
-
บทความวารสารนี้ให้การวิเคราะห์เชิงลึกเกี่ยวกับความท้าทายในการเข้าถึงทั่วไปที่ต้องเผชิญในแอปพลิเคชันบนมือถือ โดยอภิปรายการตัวอย่างจากโลกแห่งความเป็นจริงและวิธีแก้ปัญหาที่เป็นไปได้สำหรับนักพัฒนา
-
วารสารนานาชาติด้านการวิจัยนวัตกรรมทางวิศวกรรมคอมพิวเตอร์และการสื่อสาร ป>
-
เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น