Skip to content

Commit 0caf27f

Browse files
committed
refactor: adjust finding to experiment results
1 parent 5323d81 commit 0caf27f

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

src/helpers/accessibility.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,8 @@ export function getRole(element: ReactTestInstance): Role | AccessibilityRole {
143143
return 'text';
144144
}
145145

146-
if (isHostImage(element) && element.props.alt) {
147-
return 'img';
148-
}
146+
// Note: host Image elements report "image" role in screen reader only on Android, but not on iOS.
147+
// It's better to require explicit role for Image elements.
149148

150149
return 'none';
151150
}

src/queries/__tests__/role.test.tsx

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,22 @@ describe('supports name option', () => {
227227
});
228228

229229
test('supports host Image element with "alt" prop', () => {
230-
render(<Image alt="An elephant" testID="image" />);
230+
render(
231+
<>
232+
<Image testID="image1" role="img" alt="an elephant" />
233+
<Image testID="image2" accessibilityRole="image" alt="a tiger" />
234+
</>,
235+
);
236+
237+
const expectedElement1 = screen.getByTestId('image1');
238+
expect(screen.getByRole('img', { name: 'an elephant' })).toBe(expectedElement1);
239+
expect(screen.getByRole('image', { name: 'an elephant' })).toBe(expectedElement1);
240+
expect(screen.getByRole(/img/, { name: /elephant/ })).toBe(expectedElement1);
231241

232-
const expectedElement = screen.getByTestId('image');
233-
expect(screen.getByRole('img', { name: 'An elephant' })).toBe(expectedElement);
234-
expect(screen.getByRole('image', { name: 'An elephant' })).toBe(expectedElement);
235-
expect(screen.getByRole(/img/, { name: 'An elephant' })).toBe(expectedElement);
242+
const expectedElement2 = screen.getByTestId('image2');
243+
expect(screen.getByRole('img', { name: 'a tiger' })).toBe(expectedElement2);
244+
expect(screen.getByRole('image', { name: 'a tiger' })).toBe(expectedElement2);
245+
expect(screen.getByRole(/img/, { name: /tiger/ })).toBe(expectedElement2);
236246
});
237247
});
238248

0 commit comments

Comments
 (0)