From 792e27b293d2a9144bc85ea1bca882630e6bc07e Mon Sep 17 00:00:00 2001 From: Oliver Byford Date: Wed, 8 Sep 2021 13:41:47 +0100 Subject: [PATCH] Add failing test for invalid HTML in summary list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a summary list has actions in only some of the rows, we include an empty span with the `govuk-summary-list__actions` class in the rows that do not have actions: ``` dl.govuk-summary-list div.govuk-summary-list__row dt.govuk-summary-list__key dd.govuk-summary-list__value dd.govuk-summary-list__actions <-- List of actions div.govuk-summary-list__row dt.govuk-summary-list__key dd.govuk-summary-list__value span.govuk-summary-list__actions <-- Empty ``` This is required because (from the tablet breakpoint upwards) the summary list is displayed as a table, and the bottom border on each 'row' is applied to the individual 'cells' within that row (the key, value, and actions elements). Omitting the actions element from a row therefore means that that part of the row does not have a bottom border. However, this is invalid HTML as the content model for the `
` element [1] only allows for 'either: Zero or more groups each consisting of one or more dt elements followed by one or more dd elements, optionally intermixed with script-supporting elements. Or: One or more div elements, optionally intermixed with script-supporting elements.' As such, it's not valid for a to be a direct child of a `
`. This has been flagged by automated testing tools such as Axe (as seen in #1806) – although we're not aware of any issues that it would cause for users in practise. Add a failing test that covers this by running Axe on the example that has rows both with and without actions. The test fails with: > Summary list › rows › actions › passes accessibility tests when some rows do not have actions > > expect(received).toHaveNoViolations(expected) > > Expected the HTML found at $('dl') to have no violations: > >
> > Received: > > "
elements must only directly contain properly-ordered
and
groups,