Skip to content

Commit

Permalink
fix(ios): accessibility properties not returning proper value (#11109)
Browse files Browse the repository at this point in the history
Fixes TIMOB-24171
  • Loading branch information
vijaysingh-axway authored and sgtcoolguy committed Aug 29, 2019
1 parent ee1795f commit 70922a8
Show file tree
Hide file tree
Showing 3 changed files with 125 additions and 1 deletion.
5 changes: 4 additions & 1 deletion iphone/TitaniumKit/TitaniumKit/Sources/API/TiUIView.m
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,10 @@ - (void)setAccessibilityHint_:(id)accessibilityHint

- (void)setAccessibilityHidden_:(id)accessibilityHidden
{
self.accessibilityElementsHidden = [TiUtils boolValue:accessibilityHidden def:NO];
id accessibilityElement = self.accessibilityElement;
if (accessibilityElement != nil) {
[accessibilityElement setAccessibilityElementsHidden:[TiUtils boolValue:accessibilityHidden def:NO]];
}
}

#pragma mark Layout
Expand Down
25 changes: 25 additions & 0 deletions iphone/TitaniumKit/TitaniumKit/Sources/API/TiViewProxy.m
Original file line number Diff line number Diff line change
Expand Up @@ -2845,6 +2845,31 @@ - (void)setAccessibilityHidden:(id)accessibilityHidden
[self replaceValue:accessibilityHidden forKey:@"accessibilityHidden" notification:NO];
}

- (NSObject *)accessibilityElement
{
return self.view.accessibilityElement;
}

- (NSString *)accessibilityLabel
{
return [self accessibilityElement].accessibilityLabel;
}

- (NSString *)accessibilityValue
{
return [self accessibilityElement].accessibilityValue;
}

- (NSString *)accessibilityHint
{
return [self accessibilityElement].accessibilityHint;
}

- (NSNumber *)accessibilityHidden
{
return NUMBOOL([self accessibilityElement].accessibilityElementsHidden);
}

#pragma mark - View Templates

- (void)unarchiveFromTemplate:(id)viewTemplate_
Expand Down
96 changes: 96 additions & 0 deletions tests/Resources/ti.ui.view.addontest.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
/*
* Appcelerator Titanium Mobile
* Copyright (c) 2015-Present by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
/* eslint-env mocha */
/* eslint no-unused-expressions: "off" */
'use strict';
var should = require('./utilities/assertions'),
utilities = require('./utilities/utilities');

describe('Titanium.UI.View', function () {
var rootWindow,
win;

this.slow(2000);
this.timeout(10000);

before(function (finish) {
rootWindow = Ti.UI.createWindow();
rootWindow.addEventListener('open', function () {
finish();
});
rootWindow.open();
});

after(function (finish) {
rootWindow.addEventListener('close', function () {
finish();
});
rootWindow.close();
});

afterEach(function (done) {
if (win) {
// If `win` is already closed, we're done.
let t = setTimeout(function () {
if (win) {
win = null;
done();
}
}, 3000);

win.addEventListener('close', function listener () {
clearTimeout(t);

if (win) {
win.removeEventListener('close', listener);
}
win = null;
done();
});
win.close();
} else {
win = null;
done();
}
});

it.ios('#Accessibility Details', function (finish) {
win = Ti.UI.createWindow({
backgroundColor: 'blue'
});
var label = Ti.UI.createLabel({
text: 'Label for Test',
accessibilityLabel: 'Text',
accessibilityValue: 'Value',
accessibilityHint: 'Hint',
accessibilityHidden: true
});
win.add(label);
win.addEventListener('focus', function () {
try {
should(label.accessibilityLabel).eql('Text');
should(label.accessibilityValue).eql('Value');
should(label.accessibilityHint).eql('Hint');
should(label.accessibilityHidden).eql(true);

label.setAccessibilityLabel('New Text');
label.accessibilityValue = 'New Value';
label.accessibilityHint = 'New Hint';
label.accessibilityHidden = false;

should(label.accessibilityLabel).eql('New Text');
should(label.accessibilityValue).eql('New Value');
should(label.accessibilityHint).eql('New Hint');
should(label.accessibilityHidden).eql(false);
finish();
} catch (err) {
finish(err);
}
});
win.open();
});
});

0 comments on commit 70922a8

Please sign in to comment.