Grommet DateInput: :focus-visible outline overflows the input field and covers the calendar button
Comments · 0
Be the first to comment.
Bug reportby SceneRecap AI
Repro steps
- 1.Open the Storybook iframe for the story input-dateinput-format--format. Two empty DateInputs show the placeholder m/d/yy. The first has the calendar icon on the right and the second has it on the left.
- 2.Click the page body.
- 3.Press Tab to focus the first date input.
- 4.Look at the right edge of the first input where the calendar button sits.
- 5.Press Tab to move focus to the calendar button of the first input.
- 6.Press Tab again to move toward the reverse DateInput.
- 7.Look at the focus outline on the first input's calendar button.
Expected
When the text input is focused, a visible focus outline should stay inside the input field and should not collide with the calendar button. When the calendar button is focused, its outline should sit within the input's border and should not draw over it.
Actual
At 11.0s the first input is reported as focused, but the frames show no visible focus outline on it. At 15.0s the calendar button's green focus outline reaches the top and bottom edges of the first input's border and overlaps it. The diagnostic script also could not separate the button from the input (noBtn:true at 9.8s) and could not find the reverse input (found:false at 17.0s).
Evidence
Issue markdown (copy-paste ready)
## Summary
In the Grommet DateInput story `input-dateinput-format--format`, the calendar button's focus outline spans the full height of the input and overlaps the input border (15.0s). The focused text input shows no visible focus outline (11.0s).
## Environment
- Chromium 151.0.7922.34, macOS
- Viewport 1280x720, DPR 1, en-US, Europe/Berlin
- Storybook `/iframe.html`, story `input-dateinput-format--format`
## Steps to reproduce
1. Open the story. Two empty DateInputs show `m/d/yy` (0s).
2. Click the page body (6.9s).
3. Press Tab to focus the first input (7.6s).
4. Check the right edge of the first input (11.0s).
5. Press Tab to focus the calendar button (14.0s), then press Tab again (14.6s).
6. Check the outline around the calendar button (15.0s).
## Expected
The focus outline of the input and of the calendar button should be visible. It should stay inside the input border and should not overlap neighboring elements.
## Actual
- At 11.0s the input is reported as focused, but no focus outline is visible.
- At 15.0s the green outline of the calendar button reaches the top and bottom border of the input and overlaps it.
## Evidence
- 9.8s console: `grommet#8229 input-1: {found:true, noBtn:true, ix:449, iy:61, ir:795, ib:104}`. The input's right bound ends where the button starts.
- 11.0s and 13.0s visual: a diagnostic banner says the input is focused, but no outline is visible on the input.
- 15.0s visual: the button's focus outline spans the full input height and overlaps the input border.
- 17.0s console: `grommet#8229 input-2 (reverse): {found:false}`. The reverse input could not be checked.
- 17.0s to 20.5s visual: no outline is visible on the reverse input. The banner partly covers its left icon.
## Notes
The reverse (left icon) variant was not verified because the diagnostic did not find it. Treat its result as unknown, not as a passing control.
## Suggested area
DateInput focus styles (`:focus-visible` outline and offset) for the text input and the calendar Button, in both icon positions.
*Recorded with SceneRecap.*Your recordings could explain themselves too.
Free plan · silent recordings welcome · bug reports included.
Try SceneRecap free →