@instructure/ui-select 11.7.6-snapshot-30 → 11.7.6

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,12 +3,11 @@
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
- ## [11.7.6-snapshot-30](https://github.com/instructure/instructure-ui/compare/v11.7.5...v11.7.6-snapshot-30) (2026-09-14)
7
-
8
- **Note:** Version bump only for package @instructure/ui-select
9
-
6
+ ## [11.7.6](https://github.com/instructure/instructure-ui/compare/v11.7.5...v11.7.6) (2026-09-14)
10
7
 
8
+ ### Bug Fixes
11
9
 
10
+ * **ui-select,ui-simple-select:** remove aria-readonly from Select when it has a button role ([9c2a412](https://github.com/instructure/instructure-ui/commit/9c2a41253c1e7b431708b16b4c27dbe693e4d4fa))
12
11
 
13
12
 
14
13
  ## [11.7.5](https://github.com/instructure/instructure-ui/compare/v11.7.4...v11.7.5) (2026-08-25)
@@ -569,24 +569,14 @@ let Select = (_dec = withDeterministicId(), _dec2 = withStyle(generateStyle, gen
569
569
  ...passthroughProps
570
570
  });
571
571
  const isEditable = typeof onInputChange !== 'undefined';
572
-
573
- // props to ensure screen readers treat uneditable selects as accessible
574
- // popup buttons rather than comboboxes.
575
- const overrideProps = !isEditable ? {
576
- // We need role="combobox" for the 'open list' button shortcut to work
577
- // with desktop screenreaders.
578
- // But desktop Safari with Voiceover does not support proper combobox
579
- // handling, a 'button' role is set as a workaround.
580
- // See https://bugs.webkit.org/show_bug.cgi?id=236881
581
- // Also on iOS Chrome with role='combobox' it announces unnecessarily
582
- // that its 'read-only' and that this is a 'textfield', see INSTUI-4500
583
- role: utils.isSafari() || utils.isAndroidOrIOS() || interaction === 'disabled' && utils.isChromium() ? 'button' : 'combobox',
584
- title: inputValue,
585
- 'aria-autocomplete': undefined,
586
- 'aria-readonly': true
587
- } : interaction === 'disabled' && utils.isChromium() ? {
588
- role: 'button'
589
- } : {};
572
+ let overrideProps = {};
573
+ if (!isEditable) {
574
+ overrideProps = {
575
+ role: 'combobox',
576
+ title: inputValue,
577
+ 'aria-autocomplete': undefined
578
+ };
579
+ }
590
580
 
591
581
  // backdoor to autocomplete attr to work around chrome autofill issues
592
582
  if (passthroughProps['autoComplete']) {
@@ -578,24 +578,14 @@ let Select = (_dec = withDeterministicId(), _dec2 = withStyleNew(generateStyle),
578
578
  ...passthroughProps
579
579
  });
580
580
  const isEditable = typeof onInputChange !== 'undefined';
581
-
582
- // props to ensure screen readers treat uneditable selects as accessible
583
- // popup buttons rather than comboboxes.
584
- const overrideProps = !isEditable ? {
585
- // We need role="combobox" for the 'open list' button shortcut to work
586
- // with desktop screenreaders.
587
- // But desktop Safari with Voiceover does not support proper combobox
588
- // handling, a 'button' role is set as a workaround.
589
- // See https://bugs.webkit.org/show_bug.cgi?id=236881
590
- // Also on iOS Chrome with role='combobox' it announces unnecessarily
591
- // that its 'read-only' and that this is a 'textfield', see INSTUI-4500
592
- role: utils.isSafari() || utils.isAndroidOrIOS() || interaction === 'disabled' && utils.isChromium() ? 'button' : 'combobox',
593
- title: inputValue,
594
- 'aria-autocomplete': undefined,
595
- 'aria-readonly': true
596
- } : interaction === 'disabled' && utils.isChromium() ? {
597
- role: 'button'
598
- } : {};
581
+ let overrideProps = {};
582
+ if (!isEditable) {
583
+ overrideProps = {
584
+ role: 'combobox',
585
+ title: inputValue,
586
+ 'aria-autocomplete': undefined
587
+ };
588
+ }
599
589
 
600
590
  // backdoor to autocomplete attr to work around chrome autofill issues
601
591
  if (passthroughProps['autoComplete']) {
@@ -581,24 +581,14 @@ let Select = exports.Select = (_dec = (0, _withDeterministicId.withDeterministic
581
581
  ...passthroughProps
582
582
  });
583
583
  const isEditable = typeof onInputChange !== 'undefined';
584
-
585
- // props to ensure screen readers treat uneditable selects as accessible
586
- // popup buttons rather than comboboxes.
587
- const overrideProps = !isEditable ? {
588
- // We need role="combobox" for the 'open list' button shortcut to work
589
- // with desktop screenreaders.
590
- // But desktop Safari with Voiceover does not support proper combobox
591
- // handling, a 'button' role is set as a workaround.
592
- // See https://bugs.webkit.org/show_bug.cgi?id=236881
593
- // Also on iOS Chrome with role='combobox' it announces unnecessarily
594
- // that its 'read-only' and that this is a 'textfield', see INSTUI-4500
595
- role: utils.isSafari() || utils.isAndroidOrIOS() || interaction === 'disabled' && utils.isChromium() ? 'button' : 'combobox',
596
- title: inputValue,
597
- 'aria-autocomplete': undefined,
598
- 'aria-readonly': true
599
- } : interaction === 'disabled' && utils.isChromium() ? {
600
- role: 'button'
601
- } : {};
584
+ let overrideProps = {};
585
+ if (!isEditable) {
586
+ overrideProps = {
587
+ role: 'combobox',
588
+ title: inputValue,
589
+ 'aria-autocomplete': undefined
590
+ };
591
+ }
602
592
 
603
593
  // backdoor to autocomplete attr to work around chrome autofill issues
604
594
  if (passthroughProps['autoComplete']) {
@@ -589,24 +589,14 @@ let Select = exports.Select = (_dec = (0, _withDeterministicId.withDeterministic
589
589
  ...passthroughProps
590
590
  });
591
591
  const isEditable = typeof onInputChange !== 'undefined';
592
-
593
- // props to ensure screen readers treat uneditable selects as accessible
594
- // popup buttons rather than comboboxes.
595
- const overrideProps = !isEditable ? {
596
- // We need role="combobox" for the 'open list' button shortcut to work
597
- // with desktop screenreaders.
598
- // But desktop Safari with Voiceover does not support proper combobox
599
- // handling, a 'button' role is set as a workaround.
600
- // See https://bugs.webkit.org/show_bug.cgi?id=236881
601
- // Also on iOS Chrome with role='combobox' it announces unnecessarily
602
- // that its 'read-only' and that this is a 'textfield', see INSTUI-4500
603
- role: utils.isSafari() || utils.isAndroidOrIOS() || interaction === 'disabled' && utils.isChromium() ? 'button' : 'combobox',
604
- title: inputValue,
605
- 'aria-autocomplete': undefined,
606
- 'aria-readonly': true
607
- } : interaction === 'disabled' && utils.isChromium() ? {
608
- role: 'button'
609
- } : {};
592
+ let overrideProps = {};
593
+ if (!isEditable) {
594
+ overrideProps = {
595
+ role: 'combobox',
596
+ title: inputValue,
597
+ 'aria-autocomplete': undefined
598
+ };
599
+ }
610
600
 
611
601
  // backdoor to autocomplete attr to work around chrome autofill issues
612
602
  if (passthroughProps['autoComplete']) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instructure/ui-select",
3
- "version": "11.7.6-snapshot-30",
3
+ "version": "11.7.6",
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",
@@ -15,27 +15,27 @@
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
17
  "@babel/runtime": "^7.29.7",
18
- "@instructure/emotion": "11.7.6-snapshot-30",
19
- "@instructure/shared-types": "11.7.6-snapshot-30",
20
- "@instructure/ui-dom-utils": "11.7.6-snapshot-30",
21
- "@instructure/ui-icons": "11.7.6-snapshot-30",
22
- "@instructure/ui-form-field": "11.7.6-snapshot-30",
23
- "@instructure/ui-options": "11.7.6-snapshot-30",
24
- "@instructure/ui-popover": "11.7.6-snapshot-30",
25
- "@instructure/ui-react-utils": "11.7.6-snapshot-30",
26
- "@instructure/ui-position": "11.7.6-snapshot-30",
27
- "@instructure/ui-text-input": "11.7.6-snapshot-30",
28
- "@instructure/ui-themes": "11.7.6-snapshot-30",
29
- "@instructure/ui-utils": "11.7.6-snapshot-30",
30
- "@instructure/ui-selectable": "11.7.6-snapshot-30",
31
- "@instructure/ui-view": "11.7.6-snapshot-30",
32
- "@instructure/uid": "11.7.6-snapshot-30"
18
+ "@instructure/emotion": "11.7.6",
19
+ "@instructure/shared-types": "11.7.6",
20
+ "@instructure/ui-form-field": "11.7.6",
21
+ "@instructure/ui-icons": "11.7.6",
22
+ "@instructure/ui-dom-utils": "11.7.6",
23
+ "@instructure/ui-options": "11.7.6",
24
+ "@instructure/ui-popover": "11.7.6",
25
+ "@instructure/ui-react-utils": "11.7.6",
26
+ "@instructure/ui-selectable": "11.7.6",
27
+ "@instructure/ui-position": "11.7.6",
28
+ "@instructure/ui-text-input": "11.7.6",
29
+ "@instructure/ui-themes": "11.7.6",
30
+ "@instructure/ui-utils": "11.7.6",
31
+ "@instructure/ui-view": "11.7.6",
32
+ "@instructure/uid": "11.7.6"
33
33
  },
34
34
  "devDependencies": {
35
35
  "vitest": "^5.0.0",
36
- "@instructure/ui-babel-preset": "11.7.6-snapshot-30",
37
- "@instructure/ui-color-utils": "11.7.6-snapshot-30",
38
- "@instructure/ui-scripts": "11.7.6-snapshot-30"
36
+ "@instructure/ui-babel-preset": "11.7.6",
37
+ "@instructure/ui-color-utils": "11.7.6",
38
+ "@instructure/ui-scripts": "11.7.6"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "react": ">=18 <=19"
@@ -702,30 +702,14 @@ class Select extends Component<SelectProps> {
702
702
  const { ref, ...triggerProps } = getTriggerProps({ ...passthroughProps })
703
703
  const isEditable = typeof onInputChange !== 'undefined'
704
704
 
705
- // props to ensure screen readers treat uneditable selects as accessible
706
- // popup buttons rather than comboboxes.
707
- const overrideProps: Partial<TextInputProps> = !isEditable
708
- ? {
709
- // We need role="combobox" for the 'open list' button shortcut to work
710
- // with desktop screenreaders.
711
- // But desktop Safari with Voiceover does not support proper combobox
712
- // handling, a 'button' role is set as a workaround.
713
- // See https://bugs.webkit.org/show_bug.cgi?id=236881
714
- // Also on iOS Chrome with role='combobox' it announces unnecessarily
715
- // that its 'read-only' and that this is a 'textfield', see INSTUI-4500
716
- role:
717
- utils.isSafari() ||
718
- utils.isAndroidOrIOS() ||
719
- (interaction === 'disabled' && utils.isChromium())
720
- ? 'button'
721
- : 'combobox',
722
- title: inputValue,
723
- 'aria-autocomplete': undefined,
724
- 'aria-readonly': true
725
- }
726
- : interaction === 'disabled' && utils.isChromium()
727
- ? { role: 'button' }
728
- : {}
705
+ let overrideProps: Partial<TextInputProps> = {}
706
+ if (!isEditable) {
707
+ overrideProps = {
708
+ role: 'combobox',
709
+ title: inputValue,
710
+ 'aria-autocomplete': undefined
711
+ }
712
+ }
729
713
 
730
714
  // backdoor to autocomplete attr to work around chrome autofill issues
731
715
  if (passthroughProps['autoComplete']) {
@@ -720,30 +720,14 @@ class Select extends Component<SelectProps> {
720
720
  const { ref, ...triggerProps } = getTriggerProps({ ...passthroughProps })
721
721
  const isEditable = typeof onInputChange !== 'undefined'
722
722
 
723
- // props to ensure screen readers treat uneditable selects as accessible
724
- // popup buttons rather than comboboxes.
725
- const overrideProps: Partial<TextInputProps> = !isEditable
726
- ? {
727
- // We need role="combobox" for the 'open list' button shortcut to work
728
- // with desktop screenreaders.
729
- // But desktop Safari with Voiceover does not support proper combobox
730
- // handling, a 'button' role is set as a workaround.
731
- // See https://bugs.webkit.org/show_bug.cgi?id=236881
732
- // Also on iOS Chrome with role='combobox' it announces unnecessarily
733
- // that its 'read-only' and that this is a 'textfield', see INSTUI-4500
734
- role:
735
- utils.isSafari() ||
736
- utils.isAndroidOrIOS() ||
737
- (interaction === 'disabled' && utils.isChromium())
738
- ? 'button'
739
- : 'combobox',
740
- title: inputValue,
741
- 'aria-autocomplete': undefined,
742
- 'aria-readonly': true
743
- }
744
- : interaction === 'disabled' && utils.isChromium()
745
- ? { role: 'button' }
746
- : {}
723
+ let overrideProps: Partial<TextInputProps> = {}
724
+ if (!isEditable) {
725
+ overrideProps = {
726
+ role: 'combobox',
727
+ title: inputValue,
728
+ 'aria-autocomplete': undefined
729
+ }
730
+ }
747
731
 
748
732
  // backdoor to autocomplete attr to work around chrome autofill issues
749
733
  if (passthroughProps['autoComplete']) {