TalkBack — คืออะไร ท่าทางสัมผัสและการตั้งค่าบน Android

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-05-15 เวลาอ่าน: 8 นาที

TalkBack — screen reader ในตัวจาก Google สำหรับ Android ซึ่งเป็นส่วนหนึ่งของชุด Android Accessibility Suite มันจะอ่านส่วนประกอบต่าง ๆ บนอินเทอร์เฟซและช่วยให้ผู้ใช้สามารถควบคุมอุปกรณ์ด้วยท่าทางสัมผัส มอบการเข้าถึงฟังก์ชันสมาร์ทโฟนอย่างเต็มรูปแบบสำหรับผู้ใช้ที่ตาบอดและผู้มีปัญหาทางสายตา ตามข้อมูลจาก Google Accessibility Help (2025), TalkBack ถูกติดตั้งไว้ล่วงหน้าบนอุปกรณ์ Android ส่วนใหญ่และรองรับมากกว่า 30 ภาษาพร้อมเอนจินเสียงที่หลากหลาย

เรื่องสำคัญ

  • TalkBack — screen reader ในตัวจาก Google สำหรับ Android พร้อมการควบคุมด้วยท่าทางสัมผัสและเสียงตอบกลับ
  • โฟกัสการเข้าถึงได้ (accessibility focus) ไฮไลท์องค์ประกอบที่ TalkBack กำลังอ่านอยู่ด้วยกรอบสีเหลือง
  • ท่าทางสัมผัส รวมถึงการแตะ (อ่านข้อมูล), การแตะสองครั้ง (เปิดใช้งาน) และการปัดด้วยสามนิ้ว
  • นักพัฒนา สามารถตั้งค่าการเข้าถึงได้ผ่าน contentDescription และ AccessibilityNodeInfo
  • TalkBack ผนวกรวมกับ Google Assistant และจอเบรลล์

TalkBack คืออะไร?

TalkBack คือ screen reader สำหรับ Android ที่พัฒนาโดย Google และเป็นส่วนหนึ่งของ Android Accessibility Suite โดยระบบจะให้ผลตอบรับเพื่อพูดและการควบคุมด้วยท่าทางสัมผัสสำหรับผู้ใช้ที่มีความบกพร่องทางการมองเห็น TalkBack สามารถทำงานได้ทั้งบนสมาร์ทโฟน แท็บเล็ต Smart TV และอุปกรณ์สวมใส่ที่ใช้ Wear OS

TalkBack ปรากฏตัวครั้งแรกใน Android 1.6 (Donut) เมื่อปี 2009 โดยแรกเริ่มเป็นโปรเจกต์แยกต่างหาก แต่ตั้งแต่ Android 4.0 (Ice Cream Sandwich) เป็นต้นไป มันได้กลายเป็นส่วนหนึ่งของ Android Accessibility Suite ซึ่งเป็นชุดบริการที่รวมถึง Switch Access และ Select to Speak นับตั้งแต่ Android 10 เป็นต้นไป TalkBack ถูกติดตั้งไว้ล่วงหน้าบนอุปกรณ์ Android ทั้งหมดที่มีบริการ Google Play รวมถึงอุปกรณ์จากพันธมิตรอย่าง Samsung, Xiaomi, Oppo และอื่น ๆ

TalkBack รองรับมากกว่า 30 ภาษาพร้อมเอนจินเสียงที่หลากหลาย: Google Text-to-Speech, Samsung TTS และจากบุคคลที่สาม สำหรับภาษาไทย ผู้ใช้สามารถเลือกใช้เอนจินเสียงของ Google TTS ซึ่งให้การออกเสียงที่เป็นธรรมชาติและมีน้ำเสียงที่ถูกต้อง ผู้ใช้สามารถปรับความเร็วการพูด ระดับเสียงและเลือก เพศของเสียง ได้ในการตั้งค่า TalkBack

TalkBack ทำงานอย่างไร?

TalkBack ทำงานโดยใช้บริการการเข้าถึงได้ (AccessibilityService) ซึ่งเป็นกลไกระบบของ Android ที่ช่วยให้แอปพลิเคชันสามารถรับข้อมูลเกี่ยวกับสถานะของอินเทอร์เฟซและโปรแกรมทำงานร่วมกันได้ เมื่อเปิดใช้ TalkBack มันจะดักข้อมูลการแตะทั้งหมดและแปลงเป็นท่าทางสัมผัสเฉพาะของ screen reader

โฟกัสการเข้าถึงได้

องค์ประกอบสำคัญของการทำงานของ TalkBack คือ โฟกัสการเข้าถึงได้ (accessibility focus) ซึ่งแตกต่างจากโฟกัสการป้อนข้อมูลทั่วไปที่เห็นได้เป็นการไฮไลท์ของช่องข้อความ โฟกัสการเข้าถึงได้จะแสดงผลเป็นกรอบสีเหลืองรอบองค์ประกอบและไม่สามารถมองเห็นได้สำหรับผู้ใช้ที่ไม่ได้ใช้ TalkBack เมื่อโฟกัสการเข้าถึงได้ตกที่องค์ประกอบ TalkBack จะอ่านข้อมูล ประเภทและสถานะของมัน

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

AccessibilityNodeInfo และต้นไม้การเข้าถึงได้

View แต่ละอันบนหน้าจอจะถูกแทนด้วยโหนดในต้นไม้การเข้าถึงได้ ซึ่งเป็นออบเจกต์ที่เรียกว่า AccessibilityNodeInfo โดยประกอบด้วยข้อมูลดังนี้: ข้อความขององค์ประกอบ (contentDescription หรือข้อความของ view), ประเภทขององค์ประกอบ (ปุ่ม, กล่องเลือก, ช่องป้อนข้อมูล), สถานะ (เปิดใช้/ปิดใช้/เลือกแล้ว), ตำแหน่งบนหน้าจอ และรายการการกระทำที่พร้อมใช้งาน TalkBack จะเดินรอบต้นไม้นี้และอ่านโหนดแต่ละตัวตามลำดับการเดินรอบ

หาก View ไม่มีข้อมูลข้อความ (เช่น ImageView ที่ไม่มีคำอธิบาย) มันจะกลายเป็นสิ่งที่มองไม่เห็นสำหรับ TalkBack หมายความว่าผู้ใช้จะไม่รู้ถึงการมีอยู่ของมัน เพื่อแก้ไขปัญหานี้ นักพัฒนาจะต้องกำหนด contentDescription ซึ่งเป็นคำอธิบายข้อความที่ TalkBack จะอ่านแทนการว่างไว้ Android ยังรองรับ stateDescription สำหรับองค์ประกอบที่มีสถานะเปลี่ยนแปลง (เลือก/ไม่ได้เลือก) และ hintText สำหรับช่องป้อนข้อมูลที่มีคำแนะนำ

ท่าทางสัมผัสการจัดการด้วยท่าทางสัมผัสของ TalkBack

TalkBack แปลงท่าทางสัมผัสมาตรฐานของ Android ไปเป็นท่าทางสัมผัสเฉพาะของ screen reader โดยการดำเนินการส่วนใหญ่จะทำด้วยนิ้วหนึ่งหรือสองนิ้ว โดยท่าทางสัมผัสด้วยสามนิ้วจะสงวนไว้สำหรับการกระทำทั่วโลก

การกระทำท่าทางสัมผัสผลลัพธ์
อ่านข้อมูลองค์ประกอบแตะด้วย 1 นิ้วอ่านชื่อและประเภทขององค์ประกอบ
เปิดใช้งานแตะสองครั้งกดปุ่มหรือเข้าสู่ลิงก์
ถัดไปปัดไปทางขวาองค์ประกอบถัดไป
ก่อนหน้าปัดไปทางซ้ายองค์ประกอบก่อนหน้า
เลื่อนหน้าจอ2 นิ้วปัดเลื่อนรายการ
เมนู TalkBackปัดขึ้น-ซ้ายเมนูการตั้งค่าทั่วไป

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

TalkBack ในการพัฒนาแอปพลิเคชันมือถือ

Android มี API ที่หลากหลายสำหรับการตั้งค่าความสามารถในการเข้าถึงได้ ระดับพื้นฐานคือ contentDescription แต่สำหรับการรองรับ TalkBack อย่างมีคุณภาพจะต้องทำงานกับ AccessibilityNodeInfo, AccessibilityDelegate และ LiveRegion

ContentDescription และแอตทริบิวต์ที่สำคัญ

แอตทริบิวต์ android:contentDescription ใช้กำหนดคำอธิบายข้อความขององค์ประกอบสำหรับ TalkBack จำเป็นสำหรับ ImageView, ImageButton, FloatingActionButton และ View ที่กำหนดเองทุกชนิดที่ไม่มีข้อความเป็นของตัวเอง สำหรับองค์ประกอบมาตรฐาน (TextView, Button) การใช้ contentDescription เป็นตัวเลือก เพราะ TalkBack จะอ่านข้อความโดยอัตโนมัติ

kotlin
val avatarView = ImageView(this)
avatarView.contentDescription = "รูปโปรไฟล์ผู้ใช้"
avatarView.importantForAccessibility =
    IMPORTANT_FOR_ACCESSIBILITY_YES

val playButton = ImageButton(this)
playButton.contentDescription = "เล่นวิดีโอ"

val progressBar = ProgressBar(this)
progressBar.importantForAccessibility =
    IMPORTANT_FOR_ACCESSIBILITY_NO

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

AccessibilityDelegate และการกระทำแบบกำหนดเอง

สำหรับ View ที่กำหนดเองที่ไม่ได้ใช้ตัวจัดการคลิกมาตรฐาน จำเป็นต้องกำหนด AccessibilityDelegate ใหม่ ซึ่งเป็นคลาสที่จัดการกับการรับเหตุการณ์ด้านความสามารถในการเข้าถึงได้ โดย delegate จะช่วยให้สามารถกำหนดคำอธิบายที่กำหนดเอง ประเภทขององค์ประกอบและรายการการกระทำที่ทำได้ ซึ่ง TalkBack จะเสนอให้ผู้ใช้ผ่านเมนูบริบท

kotlin
class CustomButtonDelegate : View.AccessibilityDelegate() {
    override fun onInitializeAccessibilityNodeInfo(
        host: View, info: AccessibilityNodeInfoCompat
    ) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        info.text = "ปุ่มแบบกำหนดเอง"
        info.className = Button::class.java.name
        info.addAction(
            AccessibilityNodeInfoCompat.AccessibilityActionCompat(
                R.id.custom_action, "แชร์"
            )
        )
    }

    override fun performAccessibilityAction(
        host: View, action: Int, args: Bundle?
    ): Boolean {
        if (action == R.id.custom_action) {
            shareContent()
            return true
        }
        return super.performAccessibilityAction(host, action, args)
    }
}

ในตัวอย่าง delegate จะแจ้งให้ TalkBack ทราบว่าองค์ประกอบนี้เป็นปุ่ม (className = Button) และมีการกระทำแบบกำหนดเองชื่อ แบ่งปัน ซึ่งจะปรากฏในเมนูบริบทของ TalkBack เมธอด performAccessibilityAction แบ่งปันจะจัดการเรียกใช้การกระทำนี้ หากไม่มี delegate TalkBack จะรับรู้ View ที่กำหนดเองเป็นพื้นที่ที่ไม่มีการโต้ตอบ และผู้ใช้จะไม่สามารถโต้ตอบกับมันได้

การตั้งค่าความสามารถในการเข้าถึงสำหรับ TalkBack

การรองรับ TalkBack อย่างเต็มที่ไม่ได้มีแค่ contentDescription แต่ยังรวมถึงการจัดการโฟกัส LiveRegion สำหรับการอัปเดตแบบไดนามิก การทดสอบโดยเปิดใช้ screen reader และการปรับตัวให้เข้ากับ Android เวอร์ชันต่าง ๆ

LiveRegion สำหรับคอนเทนต์แบบไดนามิก

เมื่อเนื้อหาในหน้าจอเปลี่ยนแปลงโดยไม่มีการกระทำที่ชัดเจนจากผู้ใช้ (เช่น มีการแจ้งเตือนข้อความใหม่หรือจำนวนไลก์อัปเดต) TalkBack จะต้องได้รับการแจ้งเตือน สำหรับกรณีนี้จะใช้แอตทริบิวต์ android:accessibilityLiveRegion สำหรับ View ใน XML หรือเมธอด setAccessibilityLiveRegion() ในโค้ด ค่า polite จะเพิ่มคำประกาศหลังจากจากการอ่านข้อมูลปัจจุบันเสร็จ ส่วนค่า assertive จะขัดจังหวะทันที

kotlin
val statusText = TextView(this)
statusText.accessibilityLiveRegion =
    View.ACCESSIBILITY_LIVE_REGION_POLITE

// เมื่อข้อความอัปเดต TalkBack จะประกาศการเปลี่ยนแปลงโดยอัตโนมัติ
// สำหรับการแจ้งเตือนที่สำคัญ — assertive
statusText.text = "ข้อความใหม่จากแอนนา"

// ข้อความใหม่จากแอนนา
errorBanner.accessibilityLiveRegion =
    View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE

LiveRegion เป็นสิ่งที่คล้ายกับ UIAccessibility.post บน iOS ใช้ polite สำหรับการอัปเดตโดยทั่วไป (ข้อความใหม่, อัปเดตสถานะ) และใช้ assertive เฉพาะการแจ้งเตือนข้อผิดพลาดที่ร้ายแรง (การชำระที่ล้มเหลว, การเสียการเชื่อมต่อ) การใช้ assertive มากเกินไปจะสร้างประสบการณ์ที่ไม่ดีต่อผู้ใช้ เพราะ TalkBack จะขัดจังหวะการอ่านข้อมูลปัจจุบันเป็นประจำ

การจัดกลุ่มและตัวให้บริการการเข้าถึงได้

สำหรับหน้าจอที่ซับซ้อนที่ View หลาย ๆ ตัวประกอบเป็นหน่วยตรรกะเดียวกัน หน้าที่ใช้ AccessibilityNodeProvider หรือ focusSearch สำหรับการกำหนดการนำทางใหม่ ตัวอย่างเช่น ปฏิทินที่กำหนดเองที่มี 42 ช่อง (6 สัปดาห์ × 7 วัน) ไม่ควรบังคับให้ผู้ใช้เลื่อนดูทั้งหมด 42 องค์ประกอบเพื่อไปยังส่วนถัดไป นักพัฒนาสามารถรวมเซลล์เข้าเป็นกลุ่มตรรกะ: เดือน → สัปดาห์ → วัน

สำหรับ Jetpack Compose ใช้มอดิไฟเออร์ .semantics {} ซึ่งให้ API ที่คล้ายคลึงกัน: contentDescription, liveRegion, stateDescription, disabled และ customActions Compose ยังรองรับ mergeDescendants สำหรับการรวมความหมายขององค์ประกอบย่อยเข้าด้วยกัน ซึ่งช่วยให้การจัดกลุ่มองค์ประกอบมีประสิทธิภาพโดยไม่ต้องตั้งค่า accessibilityDelegate ด้วยตนเองสำหรับแต่ละ View

kotlin
Button(
    onClick = { sendMessage() },
    modifier = Modifier.semantics {
        contentDescription("ส่งข้อความ")
        stateDescription("พร้อมที่จะส่ง")
    }
) {
    Icon(Icons.Filled.Send, "ส่ง")
}

การทดสอบ TalkBack ทำได้ผ่านอุปกรณ์จริงหรืออีมูเลเตอร์ที่เปิดใช้เซอร์วิสไว้ แนะนำให้ทดสอบสถานการณ์ที่สำคัญของผู้ใช้โดยปิดหน้าจอ (Screen Curtain) เพื่อจำลองการไม่มีผลตอบรับทางสายตาโดยสิ้นเชิง Android ยังมี Accessibility Scanner ซึ่งเป็นเครื่องมือสำหรับการค้นหาปัญหาการเข้าถึงได้โดยอัตโนมัติ ซึ่งจะไฮไลท์องค์ประกอบที่ไม่มี contentDescription พื้นที่แตะที่เล็กเกินไปและความคั่นต่อที่ต่ำ

คำถามที่พบบ่อย

จะเปิดใช้งาน TalkBack บน Android ได้อย่างไร?

ไปที่ การตั้งค่า → ความสามารถเฉพาะเจาะจง → TalkBack → เปิดใช้งาน สำหรับการเปิดอย่างรวดเร็ว ใช้การกดปุ่มปรับระดับเสียงทั้งสองพร้อมกันค้างเป็นเวลา 3 วินาที Google Assistant สามารถเปิด TalkBack ด้วยคำสั่งเสียง “เปิดใช้ TalkBack”

TalkBack แตกต่างจาก VoiceOver อย่างไร?

TalkBack คือ screen reader สำหรับ Android ส่วน VoiceOver สำหรับ iOS TalkBack ใช้ AccessibilityService และโฟกัสการเข้าถึงได้ด้วยกรอบสีเหลือง ส่วน VoiceOver ใช้ UIAccessibility และโรเตเตอร์ ท่าทางสัมผัสและเมนูแตกต่างกัน: TalkBack มีการปัดรูปตัว L สำหรับเมนูทั่วไป

จะทำให้แอปพลิเคชันทำงานร่วมกับ TalkBack ได้อย่างไร?

กำหนด contentDescription สำหรับ ImageView และองค์ประกอบที่กำหนดเองทั้งหมด ใช้ importantForAccessibility สำหรับซ่อนองค์ประกอบที่เป็นตกแต่ง ตั้งค่า accessibilityLiveRegion สำหรับการอัปเดตแบบไดนามิกและตรวจสอบผ่าน Accessibility Scanner ใน Compose ใช้มอดิไฟเออร์ .semantics{}

AccessibilityNodeInfo คืออะไร?

มันคือออบเจกต์ที่แทนองค์ประกอบอินเทอร์เฟซในต้นไม้การเข้าถึงได้ ประกอบด้วยข้อความ ประเภท สถานะ ตำแหน่งและรายการการกระทำ TalkBack เดินรอบต้นไม้นี้เพื่อการนำทาง นักพัฒนาสามารถเปลี่ยนแปลงมันได้ผ่าน AccessibilityDelegate หรือแอตทริบิวต์ใน XML

ทำไม TalkBack ไม่อ่านปุ่มของฉัน?

ตรวจสอบ importantForAccessibility — อาจถูกตั้งเป็น NO ตรวจสอบให้แน่ใจว่า contentDescription ถูกกำหนดสำหรับองค์ประกอบที่ไม่มีข้อความ สำหรับ View ที่กำหนดเอง ให้ implement AccessibilityDelegate ด้วย onInitializeAccessibilityNodeInfo ใช้ Accessibility Scanner เพื่อการวินิจฉัย

สรุป

  • TalkBack — screen Reader ในตัวของ Android ใน Android Accessibility Suite พร้อมการควบคุมด้วยท่าทางสัมผัส
  • โฟกัสการเข้าถึงได้ ด้วยกรอบสีเหลืองใช้ระบุองค์ประกอบที่กำลังอ่านอยู่บนหน้าจอ
  • AccessibilityService ดักข้อมูลการแตะและแปลงเป็นท่าทางสัมผัสของ screen reader
  • ท่าทางสัมผัส ของ TalkBack รวมถึงการแตะ (อ่าน), การแตะสองครั้ง (เปิดใช้งาน) และการปัดรูปตัว L (เมนู)
  • การพัฒนา ผ่าน contentDescription, AccessibilityDelegate, LiveRegion และ semantics ใน Compose
  • การอัปเดตแบบไดนามิก ต้องการ android:accessibilityLiveRegion สำหรับการประกาศการเปลี่ยนแปลงโดยอัตโนมัติ
  • การทดสอบ ด้วย Accessibility Scanner และ Screen Curtain เป็นสิ่งจำเป็นสำหรับการรองรับที่มีคุณภาพ

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม