This change makes a variety of changes to form controls to improve their
appearance. In general, they now look more similar to Chrome and
Firefox:
- Padding is added everywhere
- Checkboxes and radio buttons are more centered in their containers
and they no longer affect the baseline of their surroundings.
- Buttons react when hovered and clicked.
- Form control styles are organized a bit.
- More controls have a style making it obvious they are disabled.
There's more work to do here, but it is saved for followup changes
- Checkbox checks are not well positioned -- they should likely be an
image.
- More work is necessary to ensure that the controls look consistent at
all font sizes and that font sizes from the surrounding content do not
leak in.
Testing: This change causes some WPT tests to start passing some to
start failing,
due to the fact that we do not properly implement all of the behavior of
form controls.
Failures:
- `/css/css-flexbox/stretch-flex-item-checkbox-input.html` and
`/css/css-flexbox/stretch-flex-item-checkbox-input.html`: These test the
behavior of checkboxes and radio buttons in flex containers, but since
we do not have a Shadow DOM or custom rendering for our controls, we
must limit the height and width of the controls. Further refinement
is necessary here to get this working properly, though it only affects
controls in flex.
- `/css/css-grid/subgrid/subgrid-button.html`,
`/css/css-transforms/transform-input-002.html`,
`/html/rendering/widgets/button-layout/scrollbars.html`: These two seem
to be
minor subpixel variations in the output.
-
`/html/rendering/widgets/baseline-alignment-and-overflow.tentative.html`:
This tests uspecified behavior about where baselines come from in
controls.
We do not implement this yet.
-
`/pointerevents/pointerevent_lostpointercapture_for_disconnected_shadow_host.html`:
We do not support the `lostpointercapture` event so I suspect this is
just
timing out in a slightly different way.
Fixes: #34969.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>