Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> สมาร์ทโฟน >> iPhone

สิ่งจำเป็นสำหรับ SwiftUI:เอาชนะอุปสรรคการเข้าถึงหลัก 9 ประการในแอพ iOS

สิ่งจำเป็นสำหรับ SwiftUI:เอาชนะอุปสรรคการเข้าถึงหลัก 9 ประการในแอพ iOS

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

บทความนี้เน้นย้ำถึงความท้าทายในการช่วยการเข้าถึงทั่วไปเก้าประการในแอพมือถือ และแสดงให้เห็นว่าคุณสมบัติ 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 และตรวจสอบให้แน่ใจว่าข้อความของแอปปรับขนาดได้อย่างถูกต้องโดยไม่ตัดทอนหรือทับซ้อนกัน โดยคงไว้ซึ่งความสามารถในการอ่าน

ข้อมูลอ้างอิง

  1. เอกสารสำหรับนักพัฒนา Apple:การเข้าถึง SwiftUI

    • คู่มือที่ครอบคลุมเกี่ยวกับการเข้าถึงใน SwiftUI ครอบคลุมคุณสมบัติการเข้าถึงเช่น 139 , 143 , 157 และอีกมากมาย

    • คู่มือการเข้าถึง SwiftUI

  2. แนวทางปฏิบัติของ Apple Human Interface:การเข้าถึง

    • แนวทางปฏิบัติที่ดีที่สุดของ Apple ในการออกแบบแอปที่สามารถเข้าถึงได้ รวมถึงการแนะนำคอนทราสต์ของสีและขนาดเป้าหมายการสัมผัส

    • แนวทางปฏิบัติของ Apple Human Interface:การช่วยการเข้าถึง

  3. เครื่องวิเคราะห์คอนทราสต์สี

    • เครื่องมือสำหรับการทดสอบอัตราส่วนคอนทราสต์เพื่อให้แน่ใจว่าการเข้าถึงสีเป็นไปตามมาตรฐาน WCAG

    • เครื่องวิเคราะห์คอนทราสต์สี

  4. ตัวตรวจสอบ VoiceOver และการเข้าถึง

    • เครื่องมือสำหรับทดสอบคุณลักษณะการเข้าถึงซึ่งมีอยู่ใน iOS และ Xcode เพื่อจำลองการใช้งานโปรแกรมอ่านหน้าจอและตรวจสอบคุณสมบัติการเข้าถึง

    • เอกสาร VoiceOver

    • เอกสารประกอบตัวตรวจสอบการเข้าถึง

  5. จันดารานา เอ็น. และกาดา ต. (2024) ความท้าทายในการเข้าถึงในแอปพลิเคชันบนมือถือในปัจจุบัน:ภาพรวมที่ครอบคลุม

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

    • วารสารนานาชาติด้านการวิจัยนวัตกรรมทางวิศวกรรมคอมพิวเตอร์และการสื่อสาร

เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น