Skip to content
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

WB-1780: Refactor combobox to use Announcer [WIP] #2390

Draft
wants to merge 90 commits into
base: feature/announcer
Choose a base branch
from

Conversation

jandrade
Copy link
Member

Summary:

Experimenting with the new announcer component to see if it can be used to
announce all the necessary information for the combobox.

Issue: https://khanacademy.atlassian.net/browse/WB-1780

Test plan:

Enable Voice Over.

Navigate to the Combobox docs and interact with the combobox to see if the
announcer announces the necessary information.

Why didn't Prettier do this automatically? I do not know...
1. Keeps announce from being called too frequently. We can play with the timeout duration.
2. Makes the returned IDREF more reliable in a browser.
1. Keeps announce from being called too frequently. We can play with the timeout duration.
2. Makes the returned IDREF more reliable in a browser.
1. Return first result and debounce subsequent calls within the debounceThreshold
2. Remove removalDelay parameter to simplify API
3. Put debounce utility into a separate file and add tests
1. Keeps announce from being called too frequently. We can play with the timeout duration.
2. Makes the returned IDREF more reliable in a browser.
1. Keeps announce from being called too frequently. We can play with the timeout duration.
2. Makes the returned IDREF more reliable in a browser.
1. Return first result and debounce subsequent calls within the debounceThreshold
2. Remove removalDelay parameter to simplify API
3. Put debounce utility into a separate file and add tests
Debounce wasn't actually limiting execution in the wait period. Now it does, and the debounce duration is still configurable when calling announceMessage!
I was trying to avoid having to import the Announcer in this test to keep things isolated, but it's so specific to the Announcer that I decided it didn't matter that much. Specifying the Announcer instance for the scope instead of generic thisArg logic simplified things quite a bit as well.
@marcysutton marcysutton force-pushed the announcer-pt1 branch 2 times, most recently from 84b08d2 to 6844066 Compare January 16, 2025 22:31
Base automatically changed from announcer-pt1 to feature/announcer January 16, 2025 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants