Closed Bug 2069386 Opened 22 days ago Closed 17 days ago

A panel-list separator can disappear in High Contrast Mode

Categories

(Toolkit :: Themes, defect, P1)

defect

Tracking

()

VERIFIED FIXED
157 Branch
Accessibility Severity s2
Tracking Status
firefox157 --- verified
firefox158 --- verified

People

(Reporter: dao, Assigned: dao)

References

Details

(Keywords: access, Whiteboard: [sng][mcab-hnt])

Attachments

(1 file, 1 obsolete file)

panel-list draws its separator as a 1px background-color on a slotted hr (::slotted(hr:not([hidden])) in toolkit/content/widgets/panel-list/panel-list.css). Under forced colors an author background-color that is neither a system color nor currentColor-derived is replaced with the canvas background -- the very surface the separator sits on -- so the line vanishes instead of being forced to something visible. A border does not have this problem: a rejected border-color reverts to currentColor.

Measured in a content document under forced colors, light theme:

background-color: #949297                                            ->  Canvas
background-color: light-dark(#B7B6BA, #949297)                       ->  Canvas
background-color: color-mix(in srgb, currentColor 25%, transparent)  ->  kept
border-color: #949297                                                ->  CanvasText

--panel-separator-color currently resolves to var(--border-color) under forced colors, which is a system color, so the default path is safe today. A consumer that overrides the token with a literal value loses its separators outright and gets no warning.

This came out of the New Tab search bar's engine dropdown missing its separator on Windows 11 in High Contrast Mode. I could not reproduce that on Linux -- the hr paints CanvasText there -- so the two may not be the same thing, and that half is still open on the parent bug.

The separator box shrinks to the line it draws. At fractional device pixel ratios the border paints one device pixel where the background covered 1.25 or 1.5 of them, so content below the separator moves up by the difference.

Assignee: nobody → dao+bmo
Status: NEW → ASSIGNED

The token is a color, but the generated semantic categories file it under box-shadow, so no border category picks it up and every consumer draws its separator through a disable comment.

Accessibility Severity: --- → s2

The severity field for this bug is set to S4. However, the accessibility severity is higher, .
:dao, could you consider increasing the severity?

For more information, please visit BugBot documentation.

Flags: needinfo?(dao+bmo)
Severity: S4 → S3
Flags: needinfo?(dao+bmo)
See Also: → 2070779

Comment on attachment 9636787 [details]
Bug 2069386 - Allow --panel-separator-color as a border color in use-design-tokens. r?#desktop-theme-reviewers!

Revision D323736 was moved to bug 2070779. Setting attachment 9636787 [details] to obsolete.

Attachment #9636787 - Attachment is obsolete: true
Status: ASSIGNED → RESOLVED
Closed: 17 days ago
Resolution: --- → FIXED
Target Milestone: --- → 157 Branch
QA Whiteboard: [qa-triage-done-c158/b157]

Reproducible on a 2026-09-04 Firefox Nightly build on Windows 11.

Verified as fixed on Firefox Nightly 158.0a1 and Firefox 157.0b4 on Windows 10 and Windows 11.

Status: RESOLVED → VERIFIED
QA Whiteboard: [qa-triage-done-c158/b157] → [qa-triage-done-c158/b157][qa-ver-done-c158/b157]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: