forgejo/web_src/js/features
Henry Catalini Smith bfebd42a3d Fix @mention combobox semantics for screen reader accessibility (#11860)
Fixes https://codeberg.org/forgejo/forgejo/issues/7668.

This was simpler to fix than my theory I posted on https://codeberg.org/forgejo/forgejo/issues/7668 about needing to patch the upstream package. When testing in Firefox with the developer console open and warnings enabled, I noticed a `Empty string passed to getElementById()` warning coming from `@github/combobox-nav` while attempting to manage the `aria-activedescendant` attribute. Then I found this in the [README for that project](https://github.com/github/combobox-nav).

> Markup requirements:
> - Each option needs to have role="option" and a unique id

This was easy to miss, as we're using `@github/text-expander-element` and the combobox-nav package is one of _its_ dependencies. Without a unique ID on each dropdown menu item, `@github/text-expander-element` is unable to set an appropriate `aria-activedescendant` attribute on the textarea. Once that's in place, the screen reader announcements come to life beautifully.

While working on it I noticed the emoji picker combobox was affected by the same problem and patched that as well.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11860
Reviewed-by: Otto <otto@codeberg.org>
Co-authored-by: Henry Catalini Smith <henry@catalinismith.se>
Co-committed-by: Henry Catalini Smith <henry@catalinismith.se>
2026-04-01 00:14:47 +02:00
..
admin feat: move more modals to native dialogs (#9636) 2025-10-13 17:48:49 +02:00
comp Fix @mention combobox semantics for screen reader accessibility (#11860) 2026-04-01 00:14:47 +02:00
add-org-member.ts feat: "Add member" button in org members list (#11848) 2026-03-31 02:56:12 +02:00
autofocus-end.js
captcha.js
clipboard.js
code-frequency.js fix(i18n): hardcoded strings in repository activity graphs (#11735) 2026-03-19 15:41:33 +01:00
codeeditor.ts feat(ui): replace Monaco with CodeMirror (#10559) 2026-01-04 23:52:33 +01:00
codemirror-lang.ts feat: support C3 language highlighting in file editor (#11241) 2026-02-16 06:40:36 +01:00
codemirror-search.ts feat(ui): replace Monaco with CodeMirror (#10559) 2026-01-04 23:52:33 +01:00
codemirror.ts feat(ui): replace Monaco with CodeMirror (#10559) 2026-01-04 23:52:33 +01:00
colorpicker.js
common-global.js fix(ui/mde): inputs in table/link insertion modals (#11341) 2026-03-02 23:32:40 +01:00
common-issue-list.js
common-issue-list.test.js
common-organization.js
contextpopup.js feat(ui): lazy-load all Vue components (#9444) 2025-09-28 05:40:40 +02:00
contributors.js Add "n commits" link to contributors in contributors graph page (#32799) 2024-12-15 13:21:02 +01:00
copycontent.js
dashboard-repo-list.ts feat(ui): lazy-load all Vue components (#9444) 2025-09-28 05:40:40 +02:00
dropzone.js
emoji.js feat: make text expander aware of custom emojis 2025-08-10 23:11:41 +02:00
eventsource.sharedworker.js
file-fold.js
heatmap.js feat(ui): lazy-load all Vue components (#9444) 2025-09-28 05:40:40 +02:00
imagediff.js
install.js
notification.js
org-team.js chore: enable no-jquery/no-each-util 2025-04-01 03:59:12 +02:00
pull-view-file.js
recent-commits.js fix(i18n): hardcoded strings in repository activity graphs (#11735) 2026-03-19 15:41:33 +01:00
repo-action-view.ts feat: link CI job to its defining workflow file (#11216) 2026-02-20 03:11:29 +01:00
repo-activity-top-authors.ts fix: add vue data to createApp instead mount (#9467) 2025-09-29 15:44:01 +02:00
repo-branch-tag-selector.js feat: replace cross origin protection (#9830) 2025-10-29 22:43:22 +01:00
repo-branch.ts feat: convert create/rename branch and create tag to native dialog (#9760) 2025-10-30 21:06:14 +01:00
repo-code.test.ts chore(ui): replace repo-code jQuery use, convert file to typescript (#9337) 2025-09-21 08:08:47 +02:00
repo-code.ts chore(ui): replace repo-code jQuery use, convert file to typescript (#9337) 2025-09-21 08:08:47 +02:00
repo-commit.js fix(ui): improve Git notes editing (#11365) 2026-03-10 23:49:18 +01:00
repo-common.js fix(ui): make tag dropdown clickable again (#7558) 2025-04-16 12:28:39 +00:00
repo-diff-commit.js
repo-diff-commitselect.js feat(ui): lazy-load all Vue components (#9444) 2025-09-28 05:40:40 +02:00
repo-diff-filetree.js feat(ui): lazy-load all Vue components (#9444) 2025-09-28 05:40:40 +02:00
repo-diff.js fix: process dynamically added content via htmx (#10572) 2025-12-29 20:54:49 +01:00
repo-editor.js feat(ui): replace Monaco with CodeMirror (#10559) 2026-01-04 23:52:33 +01:00
repo-findfile.js
repo-findfile.test.js
repo-graph.js
repo-home.js
repo-issue-content.js feat: show spinner when loading content history menu (#9874) 2025-10-27 22:04:04 +01:00
repo-issue-list.js feat: improve label filtering exclusion (#10702) 2026-02-08 00:31:31 +01:00
repo-issue-pr-form.js feat(ui): lazy-load all Vue components (#9444) 2025-09-28 05:40:40 +02:00
repo-issue-pr-status.js
repo-issue-sidebar-list.ts feat: improve label filtering exclusion (#10702) 2026-02-08 00:31:31 +01:00
repo-issue.js fix: normalize issue title case when matching prefixes (#11190) 2026-02-09 15:38:14 +01:00
repo-issue.test.js fix: normalize issue title case when matching prefixes (#11190) 2026-02-09 15:38:14 +01:00
repo-legacy.js Make label dropdown menu items with .tw-hidden unselectable (#11858) 2026-03-31 23:22:46 +02:00
repo-migrate.js
repo-migration.js Add support for migrating from Pagure (#8513) 2025-08-11 16:56:26 +02:00
repo-milestone.js
repo-projects.js
repo-release.js fix(ui): release: set default release title to tag name (#6883) 2025-02-23 08:30:39 +00:00
repo-search.js
repo-settings.js feat(ui): replace Monaco with CodeMirror (#10559) 2026-01-04 23:52:33 +01:00
repo-template.js chore: enable no-jquery/no-each-util 2025-04-01 03:59:12 +02:00
repo-unicode-escape.js fix(ui): make unicode escape work in wiki (#8923) 2025-09-10 08:10:23 +02:00
repo-wiki.js
sshkey-helper.js feat(ui): clear panel form inputs when closed 2025-09-16 15:49:02 -07:00
stopwatch.js
tablesort.js
tribute.js
user-auth-webauthn.js
user-auth.js feat: improve incorrect ROOT_URL warning (#7103) 2025-03-03 18:05:01 +00:00