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

coreui / coreui-pro / 37437859400
96%
main: 94%

Build:
Build:
LAST BUILD BRANCH: feat/range-slider-validation-state-v6
DEFAULT BRANCH: main
Ran 06 Oct 2026 08:43AM UTC
Jobs 1
Files 80
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

06 Oct 2026 08:41AM UTC coverage: 95.794% (+0.03%) from 95.761%
37437859400

push

github

web-flow
feat(Stepper): read a validation message with its field instead of a live pane (#1570)

The panes were aria-live, so after a failed step a screen reader read the
field the stepper focused and then every message of the step again from
the pane. The panes are no longer live regions. While a control is
invalid, the stepper adds its invalid feedback to its aria-describedby and
removes only the ids it added once the control is valid, disabled, reset()
or disposed. The feedback is the elements named in
data-coreui-invalid-feedback, or else the .invalid-feedback and
.invalid-tooltip the stylesheet shows for the control: the ones after it
or after its .form-control-group or .form-range, up to where the next
field starts, and the ones in the .form-field around its input group; a
radio or checkbox gets the feedback of every choice sharing its name. So
the markup of the custom styles example works unchanged, and a found
element without an id gets one. aria-errormessage is not used because
VoiceOver does not read it in Safari or Chrome (measured on macOS 14.8.2);
NVDA 2024.3+ and JAWS are reported to read it in addition to
aria-describedby, which would repeat the message (not measured here).

When focus is already on the first invalid control, or no invalid control
can take focus, the message is announced through announce() instead, or
the browser's validation message when the control has none, without the
parts marked hidden and read in the next task, so a message a framework
renders from the validation event is the one heard. A control that hands focus on, as the MultiSelect's
hidden select does, counts as focused even when focus comes back to where
it was; focus that ends on the body does not, and when no control takes
focus it goes back where it was, or off a control hidden from assistive
technologies when nothing had it, also across a shadow root.

The marking, the focus move and the announcement live in
util/form-validation.ts, exported as @coreui/coreui-pr... (continued)

7163 of 7727 branches covered (92.7%)

Branch coverage included in aggregate %.

143 of 143 new or added lines in 2 files covered. (100.0%)

12400 of 12695 relevant lines covered (97.68%)

1587.05 hits per line

Jobs
ID Job ID Ran Files Coverage
1 37437859400.1 06 Oct 2026 08:43AM UTC 80
95.79
GitHub Action Run
Source Files on build 37437859400
  • Tree
  • List 80
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37437859400
  • 3676fe37 on github
  • Prev Build on v6-dev (#37428438804)
  • Next Build on v6-dev (#37455511477)
  • 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