ฉันได้รับคำเตือนว่า "[การช่วยการเข้าถึง] ไม่มีแอตทริบิวต์ contentDescription บนรูปภาพ" สำหรับมุมมองภาพ ในขณะที่ใช้ผ้าสำลีของ Android
นั่นหมายความว่าอย่างไร?
<string name="none"></string>
แล้วฉันก็ใช้android:contentDescription="@string/none"
ฉันได้รับคำเตือนว่า "[การช่วยการเข้าถึง] ไม่มีแอตทริบิวต์ contentDescription บนรูปภาพ" สำหรับมุมมองภาพ ในขณะที่ใช้ผ้าสำลีของ Android
นั่นหมายความว่าอย่างไร?
<string name="none"></string>
แล้วฉันก็ใช้android:contentDescription="@string/none"
คำตอบ:
แก้ไขคำเตือนนี้โดยตั้งค่าแอตทริบิวต์android:contentDescription
สำหรับ ImageView ของฉัน
android:contentDescription="@string/desc"
การสนับสนุน Android Lint ใน ADT 16 จะแสดงคำเตือนนี้เพื่อให้แน่ใจว่าวิดเจ็ตรูปภาพมี contentDescription
สิ่งนี้กำหนดข้อความที่อธิบายสั้น ๆ เกี่ยวกับเนื้อหาของมุมมอง คุณสมบัตินี้ใช้เพื่อการเข้าถึงเป็นหลัก เนื่องจากบางมุมมองไม่มีการแสดงข้อความแอตทริบิวต์นี้จึงสามารถใช้ในการระบุได้
วิดเจ็ตที่ไม่ใช่ข้อความเช่น ImageViews และ ImageButtons ควรใช้แอตทริบิวต์ contentDescription เพื่อระบุคำอธิบายที่เป็นข้อความของวิดเจ็ตเพื่อให้โปรแกรมอ่านหน้าจอและเครื่องมือการช่วยสำหรับการเข้าถึงอื่น ๆ สามารถอธิบายอินเทอร์เฟซผู้ใช้ได้อย่างเพียงพอ
การปิดคำเตือน Lint จะทำให้คุณมีปัญหาในภายหลังได้อย่างง่ายดาย คุณจะดีกว่าเพียงแค่ระบุ contentDescription สำหรับ ImageView ทั้งหมดของคุณ หากคุณไม่ต้องการคำอธิบายให้ใช้:
android:contentDescription="@null"
อีกทางเลือกหนึ่งคือการระงับคำเตือนทีละรายการ:
xmlns:tools="http://schemas.android.com/tools" (usually inserted automatically)
tools:ignore="contentDescription"
ตัวอย่าง:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="contentDescription" >
<ImageView
android:layout_width="50dp"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:padding="5dp"
android:src="@drawable/icon" />
ขอแนะนำให้คุณเพิ่ม contentDescription
android:contentDescription="@string/contentDescriptionXxxx"
แต่ขอให้เป็นจริง คนส่วนใหญ่ไม่ได้รักษาตัวอักษรไว้สำหรับการเข้าถึง ถึงกระนั้นด้วยความพยายามเพียงเล็กน้อยคุณก็สามารถทำบางสิ่งเพื่อช่วยเหลือผู้พิการได้
<string name="contentDescriptionUseless">deco</string>
<string name="contentDescriptionAction">button de action</string>
<string name="contentDescriptionContent">image with data</string>
<string name="contentDescriptionUserContent">image from an other user</string>
.
สิ่งที่สำคัญที่สุดที่ผู้ใช้ตาบอดจะต้องรู้คือ"ปุ่มที่ฉันต้องคลิกเพื่อดำเนินการต่ออยู่ที่ไหน"
ใช้ contentDescriptionAction สำหรับทุกสิ่งที่คลิกได้
ใช้ contentDescriptionContent สำหรับรูปภาพพร้อมข้อมูล (กราฟ, textAsImage, ... )
ใช้ contentDescriptionUserContent สำหรับเนื้อหาที่ผู้ใช้ให้มาทั้งหมด
ใช้ contentDescriptionUseless สำหรับส่วนที่เหลือทั้งหมด
เนื่องจากเป็นเพียงคำเตือนเท่านั้นที่คุณสามารถระงับได้ ไปที่เค้าโครงกราฟิกของ XML แล้วทำสิ่งนี้:
คลิกที่ปุ่มสีแดงมุมบนขวา
เลือก "ปิดใช้งานประเภทปัญหา" (ตัวอย่าง)
หากคุณต้องการระงับคำเตือนนี้อย่างสวยงาม (เนื่องจากคุณแน่ใจว่าไม่จำเป็นต้องมีการช่วยสำหรับการเข้าถึงสำหรับ ImageView นี้) คุณสามารถใช้แอตทริบิวต์พิเศษ:
android:importantForAccessibility="no"
ไปที่Gradle
ไฟล์ (แอพโมดูล) เพิ่มบล็อกโค้ดด้านล่าง
android {
...
lintOptions {
disable 'ContentDescription'
}
...
}
ไม่มีคำเตือนอีกต่อไป! มีความสุขในการเข้ารหัส
วิดเจ็ตที่ไม่ใช่ข้อความต้องการคำอธิบายเนื้อหาในบางวิธีในการอธิบายรูปภาพเป็นข้อความเพื่อให้ผู้อ่านหน้าจอสามารถอธิบายอินเทอร์เฟซผู้ใช้ คุณสามารถละเว้นคุณสมบัติหรือกำหนดคุณสมบัติxmlns:tools="http://schemas.android.com/tools"
tools:ignore="contentDescription"android:contentDescription="your description"
ContentDescription
จำเป็นสำหรับการเข้าถึงของ Android โดยเฉพาะอย่างยิ่งสำหรับคุณสมบัติโปรแกรมอ่านหน้าจอ หากคุณไม่รองรับการเข้าถึงของ Android คุณสามารถเพิกเฉยได้ด้วยการตั้งค่าLintผ้าสำลี
lint.xml
ดังนั้นเพียงแค่สร้าง
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="ContentDescription" severity="ignore" />
</lint>
และนำไปapp
ไว้ที่โฟลเดอร์
สำหรับองค์ประกอบกราฟิกที่ตกแต่งอย่างหมดจดให้ตั้งค่าแอตทริบิวต์ XML ของ android: contentDescription เป็น "@null"
หากแอปของคุณรองรับเฉพาะอุปกรณ์ที่ใช้ Android 4.1 (API ระดับ 16) ขึ้นไปคุณสามารถตั้งค่าแอตทริบิวต์ XML ขององค์ประกอบเหล่านี้ของ android: importantForAccessibility XML เป็น "no" ได้
เนื่องจากฉันต้องการ ImageView เพื่อเพิ่มไอคอนเพียงเพื่อความสวยงามที่ฉันได้เพิ่มเข้าไป tools:ignore="ContentDescription"
ในแต่ละ ImageView ที่ฉันมีในไฟล์ xml ของฉัน
ฉันไม่ได้รับข้อความแสดงข้อผิดพลาดอีกต่อไป