Titanium JIRA Archive
Appcelerator Community (AC)

[AC-5633] Android Accessibility issue with ListItems

GitHub Issuen/a
TypeBug
Priorityn/a
StatusResolved
ResolutionNeeds more info
Resolution Date2018-03-10T21:04:50.000+0000
Affected Version/sn/a
Fix Version/sn/a
ComponentsTitanium SDK & CLI
Labelsn/a
ReporterYanko Valera
AssigneeShak Hossain
Created2018-02-28T16:21:00.000+0000
Updated2018-03-10T21:27:03.000+0000

Description

I’m using a ListView with accessibility enabled. After some operations, I can hear VoiceOver read text for labels, and “One of the following images: checkmark, child, or disclosure”. I'm not using accessory type neither default ListItem template. After searching found it's fixed/harcoded here https://github.com/appcelerator/titanium_mobile/blob/master/android/modules/ui/res/layout/titanium_ui_list_item.xml and can't be removed/edited.

Comments

  1. Sharif AbuDarda 2018-02-28

    Hello, Please share a sample test code that reproduces the issue. Thanks.
  2. Yanko Valera 2018-02-28

    Hi I might need some time to create a test case but see the source code has the answer to the issue, just see the android:contentDescription="One of the following images: checkmark, child, or disclosure" It should be removed or at least somehow to be removed from our end.
  3. Mostafizur Rahman 2018-03-06

    [~yankovalera@gmail.com] Thanks for your feedback. Did you manage to create a sample test case so that we can reproduce the issue on our end?
  4. Michael Gangolf 2018-03-10

    Run the code and switch on TalkBack in the Accessibility options. If you click on the accessoryType icons you can hear the text.
       var win = Ti.UI.createWindow({
       var win = Ti.UI.createWindow({
       	backgroundColor: 'white'
       });
       var listView = Ti.UI.createListView();
       var sections = [];
       
       var fruitSection = Ti.UI.createListSection({
       	headerTitle: 'Fruits'
       });
       var fruitDataSet = [{
       		properties: {
       			title: 'Apple',
       
       			color: "#000",
       			accessoryType: Ti.UI.LIST_ACCESSORY_TYPE_CHECKMARK
       		}
       	},
       	{
       		properties: {
       			title: 'Banana',
       			color: "#000",
       			accessoryType: Ti.UI.LIST_ACCESSORY_TYPE_DETAIL
       		}
       	},
       ];
       fruitSection.setItems(fruitDataSet);
       sections.push(fruitSection);
       
       var vegSection = Ti.UI.createListSection({
       	headerTitle: 'Vegetables'
       });
       var vegDataSet = [{
       		properties: {
       			title: 'Carrots',
       			color: "#000",
       			accessoryType: Ti.UI.LIST_ACCESSORY_TYPE_NONE
       		}
       	},
       	{
       		properties: {
       			title: 'Potatoes',
       			color: "#000",
       			accessoryType: Ti.UI.LIST_ACCESSORY_TYPE_NONE
       		}
       	},
       ];
       vegSection.setItems(vegDataSet);
       sections.push(vegSection);
       
       listView.sections = sections;
       win.add(listView);
       win.open();
       
       var fishSection = Ti.UI.createListSection({
       	headerTitle: 'Fish'
       });
       var fishDataSet = [{
       		properties: {
       			title: 'Cod',
       			color: "#000"
       		}
       	},
       	{
       		properties: {
       			title: 'Haddock',
       			color: "#000"
       		}
       	},
       ];
       fishSection.setItems(fishDataSet);
       listView.appendSection(fishSection);
       
    I don't get the contentDescription on the type "none" elements or when I don't set it at all.

JSON Source