-
Notifications
You must be signed in to change notification settings - Fork 13.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(git): update next from main #29982
Commits on Oct 22, 2024
-
fix(backdrop): remove tabindex for improved accessibility (#29956)
Issue number: resolves #29773 --------- <!-- Please do not submit updates to dependencies unless it fixes an issue. --> <!-- Please try to limit your pull request to one type (bugfix, feature, etc). Submit multiple pull requests if needed. --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> Certain Chrome and Edge versions (confirmed: Chrome v127 and Edge v127) would indicate that the backdrop has an accessibility violation: ``` Blocked aria-hidden on a <ion-backdrop> element because the element that just received focus must not be hidden from assistive technology users. Avoid using aria-hidden on a focused element or its ancestor. Consider using the inert attribute instead, which will also prevent focus. For more details, see the aria-hidden section of the WAI-ARIA specification at ``` The error is happening because `tabindex` and `aria-hidden` are being passed to `ion-backdrop`. The `tabindex` attribute is used to make an element focusable, regardless of value. When `aria-hidden` is applied to an element, then the element is hidden from screen readers. This violates the accessibility standards since `ion-backdrop` would be considered a focusable element but not visible to screen readers. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Removed `tabindex`, this aligns with frameworks known for accessibility (Chakra UI) ## Does this introduce a breaking change? - [ ] Yes - [x] No <!-- If this introduces a breaking change: 1. Describe the impact and migration path for existing applications below. 2. Update the BREAKING.md file with the breaking change. 3. Add "BREAKING CHANGE: [...]" to the commit description when merging. See https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer for more information. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> Dev build: `8.3.4-dev.11729533091.1ac77a0c` How to test: 1. Use either Chrome v127 or Edge v127 2. Navigate to the [alert basic page](https://ionic-framework-3pvgcj4b9-ionic1.vercel.app/src/components/alert/test/basic) from the `main` branch 3. Open browser console 4. Click on the first button on the alert page 5. Click on the backdrop 6. Notice the error message in the browser console (if you don't see it, then use a private browser or clear cache) 7. Navigate to the [alert basic page](https://ionic-framework-git-rou-11175-ionic1.vercel.app/src/components/alert/test/basic) from the `ROU-11175` branch 8. Repeat steps 2-6 9. Verify that the error does not appear
Configuration menu - View commit details
-
Copy full SHA for 7294e96 - Browse repository at this point
Copy the full SHA 7294e96View commit details -
fix(angular): add missing 'compareWith' input to standalone ion-radio…
…-group (#29870) Issue number: resolves #29826 --------- ## What is the current behavior? When using `compareWith` on `ion-radio-group` in Ionic Angular Standalone the following error is thrown: ``` NG8002: Can't bind to 'compareWith' since it isn't a known property of 'ion-radio-group'. ``` ## What is the new behavior? - `compareWith` on `ion-radio-group` in Angular Standalone is available ## Does this introduce a breaking change? - [ ] Yes - [x] No
Configuration menu - View commit details
-
Copy full SHA for 47ba703 - Browse repository at this point
Copy the full SHA 47ba703View commit details -
fix(vue): incorrect view rendered when using router.go(-n) (#29877)
resolves #28201 This PR fixes the navigation issue related to `router.go` that was identified in issue #28201. After working on this issue I realised that @xxllxhdj has already created a PR for this in #29847. While their fix is great, I have added tests to replicate the issue, reused existing code and `undefined` will be returned in unexpected situations - which matches the existing functionality. ## What is the current behavior? If a user navigates from `/home` -> `/pageA` -> `/pageB` -> `/pageC` -> back to `/pageB` -> then `router.go(-2)` is called the URL will be updated to `/home` correctly, but the app will try to render `/pageA`. This happens for any delta < -1. ## What is the new behavior? The app will correctly render `/pageA`, which matches the URL. ## Does this introduce a breaking change? - [ ] Yes - [X] No --------- Co-authored-by: xxllxhdj <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e32fbe0 - Browse repository at this point
Copy the full SHA e32fbe0View commit details
Commits on Oct 24, 2024
-
fix(overlay): hide from screen readers while animating (#29951)
Issue number: resolves #29857 --------- <!-- Please do not submit updates to dependencies unless it fixes an issue. --> <!-- Please try to limit your pull request to one type (bugfix, feature, etc). Submit multiple pull requests if needed. --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> Screen readers like Android Talkback would not have the focus ring on the correct element. For example, Talkback would announce the buttons correctly within action sheet but the focus ring was no where to be seen. After digging around, the focus rings are located out of screen because the action sheet is mounted to the DOM out of the screen first then transitions into the screen. There are some screen readers that do not behave as expected when an element uses `transform` styles like action sheet. https://github.com/user-attachments/assets/5a700bcc-3149-47a9-96ff-0aef99dd2bb3 ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - When an overlay is being animated (presenting or dismissing), the overlay will hide from screen readers. This allows the element to navigate to its correct destination for screen readers to interact with. Plus, we shouldn't allow screen readers to interact with content in the middle of an animation. It could lead to some confusion. ## Does this introduce a breaking change? - [ ] Yes - [x] No <!-- If this introduces a breaking change: 1. Describe the impact and migration path for existing applications below. 2. Update the BREAKING.md file with the breaking change. 3. Add "BREAKING CHANGE: [...]" to the commit description when merging. See https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer for more information. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> Dev build: 8.3.3-dev.11729276019.194c165c **A physical Android device will be needed, the issue does not appear in simulators** Components that need to be tested because they use overlays: - Action sheet - Alert - Loading - Modal - Popover - Select w/ action sheet interface - Select w/ alert interface - Select w/ popover interface - Toast How to test: 1. Create a starter app (any framework will do) 2. Add an action sheet 3. Build app for mobile devices ``` ionic build ionic cap add ios ionic cap add android ionic cap copy && ionic cap sync ``` 4. Open the app in Android Studio: `ionic cap open android` 5. Connect the Android device to Android Studio 6. Open app in Android device 7. Launch Talkback 8. Navigate back to the app 9. Open action sheet 10. Swipe over to the action sheet's buttons 11. Notice that the buttons don't have a focus ring 12. Go back to the starter 4. Install the dev build 5. Add the components to the app 6. Sync app: `ionic cap copy && ionic cap sync` 13. Relaunch the app on the Android device 14. Verify that the focus ring appears on the action sheet's buttons 15. Verify that the other overlays are working as intended
Configuration menu - View commit details
-
Copy full SHA for cb60073 - Browse repository at this point
Copy the full SHA cb60073View commit details
Commits on Oct 25, 2024
-
fix(overlays): do not hide root when toast appears (#29962)
Issue number: stemmed from #29773 --------- <!-- Please do not submit updates to dependencies unless it fixes an issue. --> <!-- Please try to limit your pull request to one type (bugfix, feature, etc). Submit multiple pull requests if needed. --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> Certain Chrome and Edge versions (confirmed: Chrome v127, v128, v129 and Edge v127) would indicate that certain elements have an accessibility violation: ``` Blocked aria-hidden on a "ELEMENT NAME" element because the element that just received focus must not be hidden from assistive technology users. Avoid using aria-hidden on a focused element or its ancestor. Consider using the inert attribute instead, which will also prevent focus. For more details, see the aria-hidden section of the WAI-ARIA specification at ``` This issue happens when a toast appears and the users clicks on any element that is not related to toast. This is due to the main content having an `aria-hidden` so users should not to be able to interact with any of those elements. This isn't an issue when an overlay uses a backdrop, like `ion-alert` because the backdrop prevents a user from interacting with those elements. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - When toast is present, the main content no longer has an `aria-hidden`. This aligns with accessibility guidelines. I also verified with other Framework, MD states "Don't trap focus in the snackbar. Users should be able to freely navigate in and out." ## Does this introduce a breaking change? - [ ] Yes - [x] No <!-- If this introduces a breaking change: 1. Describe the impact and migration path for existing applications below. 2. Update the BREAKING.md file with the breaking change. 3. Add "BREAKING CHANGE: [...]" to the commit description when merging. See https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer for more information. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> Dev build: `8.3.4-dev.11729879684.1ea28919` 1. Clone this [repo](https://github.com/brandyscarney/test-angular-overlays) 2. Install deps 3. Run the app on a private browser (Chrome v127, v128, v129 or Edge v127) 4. Open browser console 5. Click on "Open Toast" button 6. Click on any element other than "Open Toast" button, like "Open Popover" 7. Notice the error message 8. Close private browser 9. Install dev build: `npm install @ionic/[email protected]` 10. Repeat steps 4-7 11. Verify that the error message doesn't occur
Configuration menu - View commit details
-
Copy full SHA for 322d7c9 - Browse repository at this point
Copy the full SHA 322d7c9View commit details -
fix(input, textarea): ensure screen readers announce helper and error…
… text when focused (#29958) Issue number: internal --------- <!-- Please do not submit updates to dependencies unless it fixes an issue. --> <!-- Please try to limit your pull request to one type (bugfix, feature, etc). Submit multiple pull requests if needed. --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> Screen readers do not announce helper and error text when user is focused on the input or textarea. This does not align with the accessibility guidelines. ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - The appropriate `aria` tags are added to the native input and textarea in order to associate them to the helper and error texts. - `aria-describedBy` will only be added to the native element based on helper or error text. If helper text exists then the helper text ID will be used. If the error text exists and the component has the `ion-touched ion-invalid` classes, then the error text ID will be used. - `aria-invalid` will only be added if the error text exists and the component has the `ion-touched ion-invalid` classes. - Added tests. ## Does this introduce a breaking change? - [ ] Yes - [x] No <!-- If this introduces a breaking change: 1. Describe the impact and migration path for existing applications below. 2. Update the BREAKING.md file with the breaking change. 3. Add "BREAKING CHANGE: [...]" to the commit description when merging. See https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer for more information. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> How to test: 1. Navigate to the [input page](https://ionic-framework-lio43tje7-ionic1.vercel.app/src/components/input/test/bottom-content) on the `main` branch 2. Turn on the screen reader of your choice 3. Notice that the screen reader does not announce the helper or error text when the input is focused 4. Navigate to the [input page](https://ionic-framework-git-rou-11274-ionic1.vercel.app/src/components/input/test/bottom-content) on the `ROU-11274` branch 5. Turn on the screen reader of your choice 6. Verify that the screen reader announces the helper or error text when the input is focused on 7. Navigate to the [textarea page](https://ionic-framework-lio43tje7-ionic1.vercel.app/src/components/textarea/test/bottom-content) on the `main` branch 8. Repeat steps 2-3 9. Navigate to the [textarea page](https://ionic-framework-git-rou-11274-ionic1.vercel.app/src/components/textarea/test/bottom-content) on the `ROU-11274` branch 10. Repeat steps 5-6 Known Webkit issues: This fix will not work on macOS [16](https://bugs.webkit.org/show_bug.cgi?id=254081) and [17](https://bugs.webkit.org/show_bug.cgi?id=262895) as VoiceOver will not read any text using `aria-describedby`. Works fine on macOS 18.
Configuration menu - View commit details
-
Copy full SHA for 5a73145 - Browse repository at this point
Copy the full SHA 5a73145View commit details
Commits on Oct 29, 2024
-
fix(overlays): hide the focus trap div from screen readers (#29970)
Issue number: resolves #29858 --------- ## What is the current behavior? When swiping between elements using Android TalkBack, a green box is shown for certain overlays and it gains focus at the beginning and end of those overlays: <img width="419" alt="Screenshot 2024-10-25 at 2 44 45 PM" src="https://github.com/user-attachments/assets/dffd8126-ec1d-4b6f-87fc-6488c7c09aab"> ## What is the new behavior? The `aria-hidden` attribute is now added to the focus trap divs to hide them from screen readers, without preventing these divs from trapping keyboard focus. ## Does this introduce a breaking change? - [ ] Yes - [x] No ## Other information Dev build: `8.3.4-dev.11729882231.1b2e7f13`
Configuration menu - View commit details
-
Copy full SHA for c3b58f1 - Browse repository at this point
Copy the full SHA c3b58f1View commit details
Commits on Oct 30, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 93364b9 - Browse repository at this point
Copy the full SHA 93364b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for ffdaa3b - Browse repository at this point
Copy the full SHA ffdaa3bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6dc52d2 - Browse repository at this point
Copy the full SHA 6dc52d2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8d2d176 - Browse repository at this point
Copy the full SHA 8d2d176View commit details -
Configuration menu - View commit details
-
Copy full SHA for 379587d - Browse repository at this point
Copy the full SHA 379587dView commit details