• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

coreui / coreui-pro / 35603363755
94%
main: 94%

Build:
Build:
LAST BUILD BRANCH: refactor/date-time-picker-stylesheet-v6
DEFAULT BRANCH: main
Ran 21 Sep 2026 01:06PM UTC
Jobs 1
Files 76
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

21 Sep 2026 01:05PM UTC coverage: 94.409% (+0.03%) from 94.382%
35603363755

push

github

web-flow
feat(MultiSelect): open the options panel as a dialog (#1373)

The panel followed the listbox popup shape: the focus stayed on the control,
options were never focusable, and the highlight moved through
aria-activedescendant. Everything the panel carried (the select all button,
the controls of a custom header) was out of Tab's reach, and because the keys
were handled on the field, a pointer click on an option left the focus on
<body>, where Ctrl/Cmd+A and the arrows reached nothing until the user went
back to the control.

The panel is now role="dialog" named by the control, and aria-modal only
without a search box, since that box stays in the control and the user can
still reach it. Opening the panel moves the focus inside: onto the search box
when there is one, otherwise onto the option the list points at, which is the
selection the user left, or the first match once a query narrows the list.
Options take a roving tabindex and the arrows move the focus itself. A focus
trap keeps Tab inside the panel and the search box, Escape closes and hands
the focus back to the control, and a pointer press outside releases the trap
before the click that closes the panel, taking it back when the press turns
out to close nothing.

search is a boolean again. Typing reaches the search box from anywhere in the
component, which is what search: 'global' used to turn on; globalSearch
(default true) turns that routing off and the list falls back to its own
typeahead. Arrow down in the search box enters the list, arrow up enters it at
the last option, and Enter takes the option the list points at.

ListBox gained focusActive(), the single place that decides where the focus
enters, and its roving tabindex now follows the same order the arrows do, so a
selectable group label standing first takes the tab stop.

The JS bundles grow by 719 B minified and gzipped, 946 B unminified, which
crosses five ceilings; they are raised with room to spare rather than to the
byte. CSS is unchanged.

5883 of 6498 branches covered (90.54%)

Branch coverage included in aggregate %.

96 of 98 new or added lines in 4 files covered. (97.96%)

4 existing lines in 2 files now uncovered.

11086 of 11476 relevant lines covered (96.6%)

565.27 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
96.55
-0.1% js/src/multi-select.ts

Coverage Regressions

Lines Coverage ∆ File
2
96.63
-0.23% js/src/list-box.ts
2
76.42
-1.63% js/src/navigation.ts
Jobs
ID Job ID Ran Files Coverage
1 35603363755.1 21 Sep 2026 01:06PM UTC 76
94.41
GitHub Action Run
Source Files on build 35603363755
  • Tree
  • List 76
  • Changed 5
  • Source Changed 4
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #35603363755
  • 2089acc8 on github
  • Prev Build on v6-dev (#35593279162)
  • Next Build on v6-dev (#35612039655)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc