Hidden-until-focus skip link becomes visible: core/button projection drops the source rule's opacity and position
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
Research direction
Start by reproducing the neutral fixture in the issue: a button with class skip whose source rule sets opacity 0 and absolute position, plus a :focus override. Compare the source computed style with the imported core/button output to see which declarations are dropped. The issue asks for a projected rule that targets the focusable link, and a regression test that fails on trunk. Done when the button is hidden at rest, visible on :focus, and still an editable core/button.
Written by the indexing model from the issue text.
Description
Problem
A skip link that is hidden until focus renders as visible text after import. The source hides it with author CSS on the element itself and reveals it with :focus:
.skip{pointer-events:none;opacity:0;position:absolute;top:60px;left:50%;width:0;height:0;padding:0 24px;color:#116dff;background:#fff;border-radius:24px;font-size:14px}
.skip:focus{opacity:1;pointer-events:auto;width:auto;height:40px}
<button class="skip">Skip to Main Content</button>
The <button> becomes core/button. The source class moves to the .wp-block-button wrapper, and the representable declarations (color, background, padding, radius, font) move to the inner link's inline style. The hiding declarations (opacity:0, position:absolute, pointer-events:none) don't reach the rendered button. Computed style is opacity:1; position:static, and the text overflows a 0-height box as a vertical column. On a captured Wix mobile document it overlays the header and pushes the menu toggle down. Desktop is affected the same way but masked by layout.
Evidence: a 49-route import of a Wix site, compared with the frozen capture on the mobile profile. Source computed style is opacity:0; position:absolute; the import is opacity:1; position:static. The :focus reveal must keep working on the element that receives focus.
Expected
The element that receives focus keeps the source's resting and focus states. When a source rule is split between a block wrapper and its inner link, declarations the block can't express (opacity, position, pointer-events, offsets) are kept by a projected rule that targets the same element as the source. The :focus variant targets the focusable link.
Acceptance
- A neutral fixture (above) renders the button hidden at rest (opacity 0, out of flow) and visible on
:focus. The button stays an editablecore/button. - A regression test fails on trunk.
AI assistance: investigation and drafting by Claude (Anthropic) via Pi in Franklin's workspace, from a live Studio import plus a Playwright computed-style comparison against the frozen capture.
- Dominant language
- PHP
- Stars
- 22
- Forks
- 2
- Avg merge
- 8h 22m
- Merged PRs (30d)
- 659
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Automattic/blocks-engine
-
Solved site promotion gate fails on runner PHP patch drift (expects 8.2.33, runner installs 8.2.34)Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Automattic/blocks-engine#2161 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Automattic/blocks-engine#2061 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Automattic/blocks-engine#1701 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Automattic/blocks-engine#775 ·
Maintainers usually reply within 1 day
-
Product-grid detection: facet-drawer heading becomes a product, names absorb whole card text, slugs drop accentsPossibly taken @chubes4 claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Automattic/blocks-engine#3185 ·
Maintainers usually reply within 1 day
All issues in Automattic/blocks-engine
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
kanboard/kanboard#5929 · 1 comment · 3 reactions ·
Maintainers usually reply within 5 days
-
Rebuild 6.2.3 images on PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 (CVE-2026-109618, CVE-2026-109619)Open
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
swoole/docker-swoole#65 · 2 comments ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
PHP-CS-Fixer/PHP-CS-Fixer#9899 ·
Maintainers usually reply within 1 day
-
REST: Add missing text domain and fix typos in REST API controller stringsPossibly taken @devmuhib009 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100