rastrillo / fiesta Public

Task 2, the /1/ promise gates and example.Element: red and green open

On branch fiesta-1-1

Task 2 (the /1/ promise gates and example.Element), commits 8ee2d35 and 7b71b5b. Local runs on docs-t1, in a detached gate worktree holding only these two commits (Task 3's uncommitted files in the shared worktree left out).

Red: new-behaviour tests against stubs

example.Element and Contents returning "", nil:

    example_test.go:666: Element returned
--- FAIL: TestElementReturnsTheCarrierAsWritten (0.00s)
    example_test.go:676: Contents returned
--- FAIL: TestContentsReturnsWhatLiesInside (0.00s)
    example_test.go:686: Element returned "", want "<input rst-input name=\"q\">"
--- FAIL: TestElementReadsAVoidElement (0.00s)
    example_test.go:705: Element of markup with no dropdown returned "" and no error
--- FAIL: TestElementRefusesAMissingCarrier (0.00s)
    example_test.go:709: Element of two sibling dropdowns returned "" and no error
--- FAIL: TestElementRefusesTwoCarriers (0.00s)
    example_test.go:713: Element of a dropdown cut short returned "" and no error
--- FAIL: TestElementRefusesAnUnclosedCarrier (0.00s)
    example_test.go:723: Element returned
--- FAIL: TestANestedCarrierCountsOnce (0.00s)

TestTheHeaderLiftsOnlyTheSchemeMenu against the old schemeMenu:

    gallery_test.go:486: the bar's scheme menu sits in a <footer rst-page-foot>: the header lifted the example's row with it
--- FAIL: TestTheHeaderLiftsOnlyTheSchemeMenu (0.14s)

declarationsOf returning nil, requiresNewMarkup returning false:

    baseline_test.go:40: declarationsOf read 0 records:
    baseline_test.go:40: want 6:
    baseline_test.go:40:   {File:t.css Context: Selector:a Property:color Value:red Important:false}
    baseline_test.go:40:   {File:t.css Context: Selector:a Property:margin Value:0 Important:true}
    baseline_test.go:40:   {File:t.css Context: Selector:[b] Property:color Value:red Important:false}
    baseline_test.go:40:   {File:t.css Context: Selector:[b] Property:margin Value:0 Important:true}
    baseline_test.go:40:   {File:t.css Context:@media (x) > @supports (y) Selector:c Property:d Value:e Important:false}
    baseline_test.go:40:   {File:t.css Context:@container (max-width: 34rem) Selector:f Property:g Value:h Important:false}
--- FAIL: TestDeclarationsAreReadInTheirContext (0.00s)
    baseline_test.go:57: declarationsOf read 0 records:
    baseline_test.go:57: want 6:
    baseline_test.go:57:   {File:t.css Context:@property --p Selector: Property:syntax Value:"<number>" Important:false}
    baseline_test.go:57:   {File:t.css Context:@property --p Selector: Property:inherits Value:false Important:false}
    baseline_test.go:57:   {File:t.css Context:@property --p Selector: Property:initial-value Value:0 Important:false}
    baseline_test.go:57:   {File:t.css Context:@media (m) > @view-transition Selector: Property:navigation Value:auto Important:false}
    baseline_test.go:57:   {File:t.css Context:@keyframes k Selector:from Property:opacity Value:0 Important:false}
    baseline_test.go:57:   {File:t.css Context:@keyframes k Selector:to Property:opacity Value:1 Important:false}
    baseline_test.go:64: declarationsOf of a @layer block: <nil>, want an error naming @layer
--- FAIL: TestAtRulesAreReadAsRecords (0.00s)
    selectors_test.go:64: requiresNewMarkup(".rst-page:not(.rst-snippet)") refused it saying "", which does not name "positively requires"
    selectors_test.go:64: requiresNewMarkup("[rst-page]:not([rst-snippet])") refused it saying "", which does not name "positively requires"
    selectors_test.go:64: requiresNewMarkup(":is([rst-page], [rst-snippet])") refused it saying "", which does not name ":is("
    selectors_test.go:64: requiresNewMarkup(":where([rst-snippet])") refused it saying "", which does not name ":where("
    selectors_test.go:64: requiresNewMarkup("[rst-page]:not([rst-seg-tabs] > button)") refused it saying "", which does not name "positively requires"
    selectors_test.go:64: requiresNewMarkup("* [rst-snippet]") refused it saying "", which does not name "`*`"
    selectors_test.go:64: requiresNewMarkup("[rst-page]:has(> [rst-snippet], > [rst-row])") refused it saying "", which does not name "> [rst-row]"
    selectors_test.go:60: requiresNewMarkup("[rst-snippet]") = false (), want true
    selectors_test.go:60: requiresNewMarkup("[rst-page-foot]:not(:has(> *))") = false (), want true
    selectors_test.go:60: requiresNewMarkup("[rst-row]:has(> [rst-status~=\"inline\"]) > [rst-status]") = false (), want true
    selectors_test.go:60: requiresNewMarkup("[rst-page-foot] [rst-dropdown]") = false (), want true
    selectors_test.go:60: requiresNewMarkup(".rst-stats--pairs > .rst-stat:nth-child(odd)") = false (), want true
--- FAIL: TestOnlyNewMarkupPassesTheGrammar (0.00s)

Green

--- PASS: TestTheBaselineIsOneOhOh (0.26s)
--- PASS: TestOneOhScriptsAreUnchanged (0.02s)
ok  	amadan.net/rastrillo/fiesta	0.277s
--- PASS: TestElementReturnsTheCarrierAsWritten (0.00s)
--- PASS: TestContentsReturnsWhatLiesInside (0.00s)
--- PASS: TestElementReadsAVoidElement (0.00s)
--- PASS: TestElementRefusesAMissingCarrier (0.00s)
--- PASS: TestElementRefusesTwoCarriers (0.00s)
--- PASS: TestElementRefusesAnUnclosedCarrier (0.00s)
--- PASS: TestANestedCarrierCountsOnce (0.00s)
ok  	amadan.net/rastrillo/fiesta/example	0.002s
--- PASS: TestEveryOneOhDeclarationStillApplies (0.01s)
--- PASS: TestEveryNewRuleRequiresNewMarkup (0.04s)
--- PASS: TestDeclarationsAreReadInTheirContext (0.00s)
--- PASS: TestAtRulesAreReadAsRecords (0.00s)
--- PASS: TestDropdownExclusivityIsNative (0.00s)
--- PASS: TestNestedMenuGroupNeverSharesItsParentsName (0.00s)
--- PASS: TestOnlyNewMarkupPassesTheGrammar (0.00s)
ok  	amadan.net/rastrillo/fiesta/check	0.055s
--- PASS: TestTheHeaderLiftsOnlyTheSchemeMenu (0.14s)
--- PASS: TestTheAssetDeclarationDrivesTheTree (4.00s)
ok  	amadan.net/rastrillo/fiesta/internal/gallery	4.174s

./hack/gotest.sh browser check -run 'TestEveryThemeAndShellRendersAsTheBaseline|OneOh|TestADropdownOpensUnderItsOwnSummary|TestADropdownWithoutAnchorsOrScriptsStaysOnScreen'
--- PASS: TestOneOhLayoutsRenderAsTheyDid1of3 (46.91s)
--- PASS: TestOneOhLayoutsRenderAsTheyDid2of3 (31.96s)
--- PASS: TestOneOhLayoutsRenderAsTheyDid3of3 (32.60s)
--- PASS: TestEveryOneOhExampleRendersAsItDid1of4 (39.61s)
--- PASS: TestEveryOneOhExampleRendersAsItDid2of4 (40.39s)
--- PASS: TestEveryOneOhExampleRendersAsItDid3of4 (38.64s)
--- PASS: TestEveryOneOhExampleRendersAsItDid4of4 (40.72s)
--- PASS: TestEveryThemeAndShellRendersAsTheBaseline (44.72s)
--- PASS: TestADropdownOpensUnderItsOwnSummary (7.99s)
--- PASS: TestADropdownWithoutAnchorsOrScriptsStaysOnScreen (1.42s)

The gates shown red on scratch copies (each reverted after)

ftok-base-rule

--- FAIL: TestEveryOneOhDeclarationStillApplies (0.01s)
--- PASS: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:451: css/tokens.css: 1.0.0's .rst-ftok { align-items: center } is gone; a 1.0 page would render without it
    baseline_test.go:451: css/tokens.css: 1.0.0's .rst-ftok { background: var(--rst-surface) } is gone; a 1.0 page would render without it
    baseline_test.go:451: css/tokens.css: 1.0.0's .rst-ftok { border: 1px solid var(--rst-line-strong) } is gone; a 1.0 page would render without it
    baseline_test.go:451: css/tokens.css: 1.0.0's .rst-ftok { border-radius: 7px } is gone; a 1.0 page would render without it
    baseline_test.go:451: css/tokens.css: 1.0.0's .rst-ftok { display: inline-flex } is gone; a 1.0 page would render without it
    baseline_test.go:451: css/tokens.css: 1.0.0's .rst-ftok { font-size: var(--rst-fs-xs) } is gone; a 1.0 page would render without it

reflow-600

--- PASS: TestEveryOneOhDeclarationStillApplies (0.01s)
--- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:575: css/tokens.css: @media (min-width: 560px) and (max-width: 640px) { .rst-page { padding-inline: 3rem } } is new and .rst-page: no compound positively requires a name 1.0 does not style; no newOnOldMarkup entry is this selector
    baseline_test.go:575: css/tokens.css: @media (min-width: 560px) and (max-width: 640px) { [rst-page] { padding-inline: 3rem } } is new and [rst-page]: no compound positively requires a name 1.0 does not style; no newOnOldMarkup entry is this selector

not-snippet-700

--- PASS: TestEveryOneOhDeclarationStillApplies (0.01s)
--- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:575: css/tokens.css: @media (min-width: 700px) and (max-width: 750px) { .rst-page:not(.rst-snippet) { padding-inline: 3rem } } is new and .rst-page:not(.rst-snippet): no compound positively requires a name 1.0 does not style (names inside 
    baseline_test.go:575: css/tokens.css: @media (min-width: 700px) and (max-width: 750px) { [rst-page]:not([rst-snippet]) { padding-inline: 3rem } } is new and [rst-page]:not([rst-snippet]): no compound positively requires a name 1.0 does not style (names ins

mixed-is

--- PASS: TestEveryOneOhDeclarationStillApplies (0.01s)
--- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:575: css/tokens.css: :is([rst-page], [rst-snippet]) { margin: 1px } is new and :is([rst-page], [rst-snippet]): `:is(` is outside the grammar

not-seg-tabs-button

--- PASS: TestEveryOneOhDeclarationStillApplies (0.01s)
--- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:582: css/tokens.css: [rst-page]:not([rst-seg-tabs] > button) { margin: 1px } is new and [rst-page]:not([rst-seg-tabs] > button): no compound positively requires a name 1.0 does not style (names inside :not() never count); no newOnOldMarkup
    baseline_test.go:588: newOnOldMarkup[".rst-seg-tabs > button"] is used by no new declaration; an exception for nothing is a hole waiting to be used
    baseline_test.go:588: newOnOldMarkup[".rst-seg-tabs > button:hover"] is used by no new declaration; an exception for nothing is a hole waiting to be used
    baseline_test.go:588: newOnOldMarkup[".rst-seg-tabs > button[aria-pressed=\"true\"]"] is used by no new declaration; an exception for nothing is a hole waiting to be used
    baseline_test.go:588: newOnOldMarkup["[rst-seg-tabs] > button"] is used by no new declaration; an exception for nothing is a hole waiting to be used
    baseline_test.go:588: newOnOldMarkup["[rst-seg-tabs] > button:hover"] is used by no new declaration; an exception for nothing is a hole waiting to be used

property-deleted

--- FAIL: TestEveryOneOhDeclarationStillApplies (0.01s)
--- PASS: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:451: css/tokens.css: 1.0.0's @property --rst-press { syntax: "<number>" } is gone; a 1.0 page would render without it
    baseline_test.go:451: css/tokens.css: 1.0.0's @property --rst-press { inherits: false } is gone; a 1.0 page would render without it
    baseline_test.go:451: css/tokens.css: 1.0.0's @property --rst-press { initial-value: 0 } is gone; a 1.0 page would render without it

property-initial-value

--- FAIL: TestEveryOneOhDeclarationStillApplies (0.01s)
--- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:451: css/tokens.css: 1.0.0's @property --rst-press { initial-value: 0 } is gone; a 1.0 page would render without it
    baseline_test.go:575: css/tokens.css: @property --rst-press { initial-value: 1 } is new and belongs to @property --rst-press, which 1.0.0 already has; a 1.0 page using it would animate or register differently

keyframe-transform

--- FAIL: TestEveryOneOhDeclarationStillApplies (0.01s)
--- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:451: css/shell.css: 1.0.0's @keyframes rst-shell-in-end { from { transform: translateX(100%) } } is gone; a 1.0 page would render without it
    baseline_test.go:575: css/shell.css: @keyframes rst-shell-in-end { from { transform: translateX(90%) } } is new and belongs to @keyframes rst-shell-in-end, which 1.0.0 already has; a 1.0 page using it would animate or register differently

caret-transition

--- FAIL: TestEveryOneOhDeclarationStillApplies (0.01s)
--- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:451: css/tokens.css: 1.0.0's .rst-caret { transition: transform 0.15s } is gone; a 1.0 page would render without it
    baseline_test.go:451: css/tokens.css: 1.0.0's [rst-caret] { transition: transform 0.15s } is gone; a 1.0 page would render without it
    baseline_test.go:575: css/tokens.css: .rst-caret { transition: transform 0.3s } is new and .rst-caret: no compound positively requires a name 1.0 does not style; no newOnOldMarkup entry is this selector
    baseline_test.go:575: css/tokens.css: [rst-caret] { transition: transform 0.3s } is new and [rst-caret]: no compound positively requires a name 1.0 does not style; no newOnOldMarkup entry is this selector

forced-dropdown-summary

--- FAIL: TestEveryOneOhDeclarationStillApplies (0.01s)
--- PASS: TestEveryNewRuleRequiresNewMarkup (0.04s)
    baseline_test.go:451: css/tokens.css: 1.0.0's @media (forced-colors: active) { [rst-dropdown] > summary { border: 1px solid ButtonBorder } } is gone; a 1.0 page would render without it

seed-byte

--- FAIL: TestTheBaselineIsOneOhOh (0.25s)
--- PASS: TestOneOhScriptsAreUnchanged (0.02s)
    releases_test.go:372: check/testdata/seed/examples/layout-column/default.html differs from v1.0.0:examples/layout-column/default.html; the baseline is 1.0.0's and never changes

script-byte

--- PASS: TestTheBaselineIsOneOhOh (0.25s)
--- FAIL: TestOneOhScriptsAreUnchanged (0.02s)
    releases_test.go:391: js/anchor.js differs from v1.0.0:js/anchor.js; a 1.x release changes no 1.0 script

ftok-base-rule, photographs

--- FAIL: TestEveryOneOhExampleRendersAsItDid1of4 (37.68s)
--- PASS: TestEveryOneOhExampleRendersAsItDid2of4 (37.38s)
--- PASS: TestEveryOneOhExampleRendersAsItDid3of4 (37.74s)
--- PASS: TestEveryOneOhExampleRendersAsItDid4of4 (38.28s)
      1 1.0.0's dropdown/menu-idiom at 390px, left to right, light, screen renders differently under the tree's CSS
      1 1.0.0's dropdown/menu-idiom at 390px, right to left, light, screen renders differently under the tree's CSS
      1 1.0.0's dropdown/menu-idiom at 900px, left to right, light, screen renders differently under the tree's CSS
      1 1.0.0's dropdown/menu-idiom at 900px, right to left, light, screen renders differently under the tree's CSS

reflow-600, photographs

--- FAIL: TestOneOhLayoutsRenderAsTheyDid1of3 (43.27s)
--- FAIL: TestOneOhLayoutsRenderAsTheyDid2of3 (32.83s)
--- FAIL: TestOneOhLayoutsRenderAsTheyDid3of3 (33.43s)
      3 1.0.0's layout-column/default at 600px, left to right, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-column/default at 600px, left to right, light, screen renders differently under the tree's CSS
      3 1.0.0's layout-column/default at 600px, right to left, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-column/default at 600px, right to left, light, screen renders differently under the tree's CSS
      3 1.0.0's layout-console-page/default at 600px, left to right, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-console-page/default at 600px, left to right, light, screen renders differently under the tree's CSS
      3 1.0.0's layout-console-page/default at 600px, right to left, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-console-page/default at 600px, right to left, light, screen renders differently under the tree's CSS
      3 1.0.0's layout-sidebar-page/default at 600px, left to right, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-sidebar-page/default at 600px, left to right, light, screen renders differently under the tree's CSS
      3 1.0.0's layout-sidebar-page/default at 600px, right to left, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-sidebar-page/default at 600px, right to left, light, screen renders differently under the tree's CSS
      3 1.0.0's layout-stage/default at 600px, left to right, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-stage/default at 600px, left to right, light, screen renders differently under the tree's CSS
      3 1.0.0's layout-stage/default at 600px, right to left, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-stage/default at 600px, right to left, light, screen renders differently under the tree's CSS
      3 1.0.0's layout-topbar/default at 600px, left to right, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-topbar/default at 600px, left to right, light, screen renders differently under the tree's CSS
      3 1.0.0's layout-topbar/default at 600px, right to left, dark, screen renders differently under the tree's CSS
      3 1.0.0's layout-topbar/default at 600px, right to left, light, screen renders differently under the tree's CSS

forced-dropdown-summary, photographs

--- FAIL: TestOneOhLayoutsRenderAsTheyDid1of3 (43.68s)
      1 1.0.0's layout-column/default at 1280px, left to right, light, forced colours renders differently under the tree's CSS
      1 1.0.0's layout-column/default at 390px, left to right, light, forced colours renders differently under the tree's CSS
      1 1.0.0's layout-console/default at 1280px, left to right, light, forced colours renders differently under the tree's CSS
      1 1.0.0's layout-console-page/default at 1280px, left to right, light, forced colours renders differently under the tree's CSS
      1 1.0.0's layout-sidebar/default at 1280px, left to right, light, forced colours renders differently under the tree's CSS
      1 1.0.0's layout-sidebar/default at 390px, left to right, light, forced colours renders differently under the tree's CSS
      1 1.0.0's layout-sidebar-page/default at 1280px, left to right, light, forced colours renders differently under the tree's CSS
      1 1.0.0's layout-topbar/default at 1280px, left to right, light, forced colours renders differently under the tree's CSS

picture-missing, photographs

--- FAIL: TestEveryOneOhExampleRendersAsItDid1of4 (18.67s)
      1 1 pictures did not load: /old/examples/assets/sample-logo.svg

The 600px reflow fails on five layouts: the sidebar and console shells show their index at 600 and draw no page there (their [rst-page] is 0 by 0), so the added padding cannot show; the new-rule gate names the rule regardless. The seg-tabs control also reports the six scratch exceptions as unused, which is that gate's own rule working.

Task 2, fixes after Astra's review (8d58daa) and the reshard (c9473c4).

Red before the fixes (8d58daa's tests on a7a1129's code)

    baseline_test.go:640: appending @media (min-width: 700px) and (max-width: 750px) { [rst-page=""] { padding-inline: 3rem; } } to 1.0.0's tokens.css passes the gate; it changes 1.0 pages
    baseline_test.go:640: appending @property --rst-sp-4 { syntax: "<length>"; inherits: false; initial-value: 48px; } to 1.0.0's tokens.css passes the gate; it changes 1.0 pages
    baseline_test.go:640: appending @keyframes rst-spin {} to 1.0.0's tokens.css passes the gate; it changes 1.0 pages
    baseline_test.go:640: appending @media (min-width: 700px) and (max-width: 750px) { [rst-job] [rst-job-bar] { inline-size: 1px; } } to 1.0.0's tokens.css passes the gate; it changes 1.0 pages
--- FAIL: TestTheNewRuleGateHasNoKnownHoles (0.59s)
    selectors_test.go:455: requiresNewMarkup("[rst-page=\"\"]") = true (), want false
    selectors_test.go:455: requiresNewMarkup("[rst-page=\"  \"]") = true (), want false
    selectors_test.go:455: requiresNewMarkup("[rst-dropdown~=\"\"]") = true (), want false
--- FAIL: TestOnlyNewMarkupPassesTheGrammar (0.00s)

Green after: what each hole is refused for

refused: css/tokens.css: @media (min-width: 700px) and (max-width: 750px) { [rst-page=""] { padding-inline: 3rem } } is new and [rst-page=""]: no compound positively requires a name 1.0 does not style; no newOnOldMarkup entry is this selector
refused: css/tokens.css: @property --rst-sp-4 is a registration of --rst-sp-4, which 1.0.0 already uses; registering it changes how 1.0's rules compute it
refused: css/tokens.css: @property --rst-sp-4 { syntax: "<length>" } is new and belongs to @property --rst-sp-4, and that at-rule is a registration of --rst-sp-4, which 1.0.0 already uses; registering it changes how 1.0's rules compute it
refused: css/tokens.css: @property --rst-sp-4 { inherits: false } is new and belongs to @property --rst-sp-4, and that at-rule is a registration of --rst-sp-4, which 1.0.0 already uses; registering it changes how 1.0's rules compute it
refused: css/tokens.css: @property --rst-sp-4 { initial-value: 48px } is new and belongs to @property --rst-sp-4, and that at-rule is a registration of --rst-sp-4, which 1.0.0 already uses; registering it changes how 1.0's rules compute it
refused: css/tokens.css: @keyframes rst-spin is a second definition of one 1.0.0 has; the later one wins on every 1.0 page
refused: css/tokens.css: @media (min-width: 700px) and (max-width: 750px) { [rst-job] [rst-job-bar] { inline-size: 1px } } is new and [rst-job] [rst-job-bar]: no compound positively requires a name 1.0 does not style; no newOnOldMarkup entry is this selector

The same four rules appended to the tree's css/tokens.css, real gate

[before] @media (min-width: 700px) and (max-width: 750px) { [rst-page=""] { padding-inline: 3rem; } } => ok  	amadan.net/rastrillo/fiesta/check	0.043s
[before] @property --rst-sp-4 { syntax: "<length>"; inherits: false; initial-value: 48px; } => ok  	amadan.net/rastrillo/fiesta/check	0.042s
[before] @keyframes rst-spin {} => ok  	amadan.net/rastrillo/fiesta/check	0.042s
[before] @media (min-width: 700px) and (max-width: 750px) { [rst-job] [rst-job-bar] { inline-size: 1px; } } => ok  	amadan.net/rastrillo/fiesta/check	0.043s
[after] @media (min-width: 700px) and (max-width: 750px) { [rst-page=""] { padding-inline: 3rem; } } => --- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)
[after] @property --rst-sp-4 { syntax: "<length>"; inherits: false; initial-value: 48px; } => --- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)
[after] @keyframes rst-spin {} => --- FAIL: TestEveryNewRuleRequiresNewMarkup (0.05s)
[after] @media (min-width: 700px) and (max-width: 750px) { [rst-job] [rst-job-bar] { inline-size: 1px; } } => --- FAIL: TestEveryNewRuleRequiresNewMarkup (0.04s)

Header test fixture (live standalone example already wrapped in a footer row)

before:
    gallery_test.go:464: examples/scheme-menu/standalone.html no longer has the <body> lines this test wraps
--- FAIL: TestTheHeaderLiftsOnlyTheSchemeMenu (0.00s)
after:
--- PASS: TestTheHeaderLiftsOnlyTheSchemeMenu (0.14s)
after, against a schemeMenu that lifts the whole body:
    gallery_test.go:499: the bar's scheme menu sits in a <footer rst-page-foot>: the header lifted the example's row with it
--- FAIL: TestTheHeaderLiftsOnlyTheSchemeMenu (0.14s)

Reshard: a hung shot fails named (budget cut to 50 ms in scratch)

    oneoh_browser_test.go:336: context deadline exceeded
    oneoh_browser_test.go:188: old's page-header/title-subhead-and-a-primary-action.html at 900px, left to right, light, screen: no answer within 50ms; the page or the browser hung
--- FAIL: TestEveryOneOhExampleRendersAsItDid1of8 (0.47s)

The chip rule deleted, with three tries a leg: still red, same pixel each time

    oneoh_browser_test.go:358: 1.0.0's dropdown/menu-idiom at 900px, left to right, light, screen renders differently under the tree's CSS: pixel 67,34 differs by 13; pixel 67,34 differs by 13; pixel 67,34 differs by 13
    oneoh_browser_test.go:358: 1.0.0's dropdown/menu-idiom at 390px, left to right, light, screen renders differently under the tree's CSS: pixel 72,44 differs by 13; pixel 72,44 differs by 13; pixel 72,44 differs by 13
    oneoh_browser_test.go:358: 1.0.0's dropdown/menu-idiom at 900px, right to left, light, screen renders differently under the tree's CSS: pixel 814,34 differs by 53; pixel 814,34 differs by 53; pixel 814,34 differs by 53
    oneoh_browser_test.go:358: 1.0.0's dropdown/menu-idiom at 390px, right to left, light, screen renders differently under the tree's CSS: pixel 289,44 differs by 54; pixel 289,44 differs by 54; pixel 289,44 differs by 54
--- FAIL: TestEveryOneOhExampleRendersAsItDid1of8 (21.15s)