Problem/Motivation
In #2350823: Use the Classy theme in the Testing profile we "temporarily" changed the testing profile to use classy theme (instead of stark) as we cleaned the CSS classes out of core and into classes.
Meanwhile, there are a number of issues that are trying to fix bugs in core's markup, many for various form elements.
Drupal 8 frontend backwards compatibility (BC) policy says we can't change templates for stable or classy until D9.
Comments like #2443815-111: [PP-1] #description_display broken for details elements seem to regularly paralyze attempts to fix legitimate bugs, since no one understands what to do once the "stable and classy should remain intact" comment is posted.
How are we actually supposed to fix the bugs in core? The 'testing' profile uses the classy theme. So if we try to fix a bug, we're supposed to update the tests, but if we can't fix the classy templates, the tests will never pass. Deadlock ensues.
Sample of bugs that have come to a halt as a result of this policy:
- #2396145: [PP-1] Option #description_display for form element fieldset is not changing anything
- #2419131: [PP-1] #states attribute does not work on #type datetime
- #2443815: [PP-1] #description_display broken for details elements
- #2945727: [PP-1] Form radios/checkboxes elements should have js-form-wrapper class
- #2982187: [PP-1] datetime-wrapper.html.twig ignores #description_display parameter
- #2988461: [PP-1] Radios template does not apply form-radios class
- ...
Proposed resolution
Ensure that our test suite runs against a theme with base theme: false
so that our tests actually test the core module templates and CSS, not a theme that our BC policy prevents us from fixing.
In particular, return the testing profile to stark and update all the tests as necessary to compensate for the new, stripped down markup.
Remaining tasks
- Return testing profile to use stark
- Update all the tests which currently rely on CSS classes such that they are compatible with the classless version of Stark
API changes
None.
User interface changes
None.
Data model changes
None.