@instructure/ui-select 10.16.0 → 10.16.1-snapshot-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [10.16.1-snapshot-0](https://github.com/instructure/instructure-ui/compare/v10.16.0...v10.16.1-snapshot-0) (2025-04-15)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ui-select,ui-form-field:** fix iOS VoiceOver with Select and SimpleSelect announcing 'readonly' and 'textinput' ([d4378e7](https://github.com/instructure/instructure-ui/commit/d4378e757b2a07c86aa89fe84c063c0406741c10))
12
+
13
+
14
+
15
+
16
+
6
17
  # [10.16.0](https://github.com/instructure/instructure-ui/compare/v10.15.2...v10.16.0) (2025-04-11)
7
18
 
8
19
  **Note:** Version bump only for package @instructure/ui-select
@@ -521,10 +521,14 @@ let Select = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle, gen
521
521
  // props to ensure screen readers treat uneditable selects as accessible
522
522
  // popup buttons rather than comboboxes.
523
523
  const overrideProps = !isEditable ? {
524
- // Given that Safari with Voiceover does not support proper combobox
525
- // handling, a button role is set as a workaround.
524
+ // We need role="combobox" for the 'open list' button shortcut to work
525
+ // with desktop screenreaders.
526
+ // But desktop Safari with Voiceover does not support proper combobox
527
+ // handling, a 'button' role is set as a workaround.
526
528
  // See https://bugs.webkit.org/show_bug.cgi?id=236881
527
- role: utils.isSafari() ? 'button' : 'combobox',
529
+ // Also on iOS Chrome with role='combobox' it announces unnecessarily
530
+ // that its 'read-only' and that this is a 'textfield', see INSTUI-4500
531
+ role: utils.isSafari() || utils.isAndroidOrIOS() ? 'button' : 'combobox',
528
532
  title: inputValue,
529
533
  'aria-autocomplete': void 0,
530
534
  'aria-readonly': true
@@ -533,10 +533,14 @@ let Select = exports.Select = (_dec = (0, _withDeterministicId.withDeterministic
533
533
  // props to ensure screen readers treat uneditable selects as accessible
534
534
  // popup buttons rather than comboboxes.
535
535
  const overrideProps = !isEditable ? {
536
- // Given that Safari with Voiceover does not support proper combobox
537
- // handling, a button role is set as a workaround.
536
+ // We need role="combobox" for the 'open list' button shortcut to work
537
+ // with desktop screenreaders.
538
+ // But desktop Safari with Voiceover does not support proper combobox
539
+ // handling, a 'button' role is set as a workaround.
538
540
  // See https://bugs.webkit.org/show_bug.cgi?id=236881
539
- role: utils.isSafari() ? 'button' : 'combobox',
541
+ // Also on iOS Chrome with role='combobox' it announces unnecessarily
542
+ // that its 'read-only' and that this is a 'textfield', see INSTUI-4500
543
+ role: utils.isSafari() || utils.isAndroidOrIOS() ? 'button' : 'combobox',
540
544
  title: inputValue,
541
545
  'aria-autocomplete': void 0,
542
546
  'aria-readonly': true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/ui-select",
3
- "version": "10.16.0",
3
+ "version": "10.16.1-snapshot-0",
4
4
  "description": "A component for select and autocomplete behavior.",
5
5
  "author": "Instructure, Inc. Engineering and Product Design",
6
6
  "module": "./es/index.js",
@@ -23,12 +23,12 @@
23
23
  },
24
24
  "license": "MIT",
25
25
  "devDependencies": {
26
- "@instructure/ui-axe-check": "10.16.0",
27
- "@instructure/ui-babel-preset": "10.16.0",
28
- "@instructure/ui-color-utils": "10.16.0",
29
- "@instructure/ui-scripts": "10.16.0",
30
- "@instructure/ui-test-utils": "10.16.0",
31
- "@instructure/ui-themes": "10.16.0",
26
+ "@instructure/ui-axe-check": "10.16.1-snapshot-0",
27
+ "@instructure/ui-babel-preset": "10.16.1-snapshot-0",
28
+ "@instructure/ui-color-utils": "10.16.1-snapshot-0",
29
+ "@instructure/ui-scripts": "10.16.1-snapshot-0",
30
+ "@instructure/ui-test-utils": "10.16.1-snapshot-0",
31
+ "@instructure/ui-themes": "10.16.1-snapshot-0",
32
32
  "@testing-library/jest-dom": "^6.6.3",
33
33
  "@testing-library/react": "^16.0.1",
34
34
  "@testing-library/user-event": "^14.5.2",
@@ -36,22 +36,22 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@babel/runtime": "^7.26.0",
39
- "@instructure/emotion": "10.16.0",
40
- "@instructure/shared-types": "10.16.0",
41
- "@instructure/ui-dom-utils": "10.16.0",
42
- "@instructure/ui-form-field": "10.16.0",
43
- "@instructure/ui-icons": "10.16.0",
44
- "@instructure/ui-options": "10.16.0",
45
- "@instructure/ui-popover": "10.16.0",
46
- "@instructure/ui-position": "10.16.0",
47
- "@instructure/ui-prop-types": "10.16.0",
48
- "@instructure/ui-react-utils": "10.16.0",
49
- "@instructure/ui-selectable": "10.16.0",
50
- "@instructure/ui-testable": "10.16.0",
51
- "@instructure/ui-text-input": "10.16.0",
52
- "@instructure/ui-utils": "10.16.0",
53
- "@instructure/ui-view": "10.16.0",
54
- "@instructure/uid": "10.16.0",
39
+ "@instructure/emotion": "10.16.1-snapshot-0",
40
+ "@instructure/shared-types": "10.16.1-snapshot-0",
41
+ "@instructure/ui-dom-utils": "10.16.1-snapshot-0",
42
+ "@instructure/ui-form-field": "10.16.1-snapshot-0",
43
+ "@instructure/ui-icons": "10.16.1-snapshot-0",
44
+ "@instructure/ui-options": "10.16.1-snapshot-0",
45
+ "@instructure/ui-popover": "10.16.1-snapshot-0",
46
+ "@instructure/ui-position": "10.16.1-snapshot-0",
47
+ "@instructure/ui-prop-types": "10.16.1-snapshot-0",
48
+ "@instructure/ui-react-utils": "10.16.1-snapshot-0",
49
+ "@instructure/ui-selectable": "10.16.1-snapshot-0",
50
+ "@instructure/ui-testable": "10.16.1-snapshot-0",
51
+ "@instructure/ui-text-input": "10.16.1-snapshot-0",
52
+ "@instructure/ui-utils": "10.16.1-snapshot-0",
53
+ "@instructure/ui-view": "10.16.1-snapshot-0",
54
+ "@instructure/uid": "10.16.1-snapshot-0",
55
55
  "prop-types": "^15.8.1"
56
56
  },
57
57
  "peerDependencies": {
@@ -697,10 +697,15 @@ class Select extends Component<SelectProps> {
697
697
  // popup buttons rather than comboboxes.
698
698
  const overrideProps: Partial<TextInputProps> = !isEditable
699
699
  ? {
700
- // Given that Safari with Voiceover does not support proper combobox
701
- // handling, a button role is set as a workaround.
700
+ // We need role="combobox" for the 'open list' button shortcut to work
701
+ // with desktop screenreaders.
702
+ // But desktop Safari with Voiceover does not support proper combobox
703
+ // handling, a 'button' role is set as a workaround.
702
704
  // See https://bugs.webkit.org/show_bug.cgi?id=236881
703
- role: utils.isSafari() ? 'button' : 'combobox',
705
+ // Also on iOS Chrome with role='combobox' it announces unnecessarily
706
+ // that its 'read-only' and that this is a 'textfield', see INSTUI-4500
707
+ role:
708
+ utils.isSafari() || utils.isAndroidOrIOS() ? 'button' : 'combobox',
704
709
  title: inputValue,
705
710
  'aria-autocomplete': undefined,
706
711
  'aria-readonly': true