The bars show fullscreen only where it works, and name every control
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- Half a day
- Newbie friendliness
- 70/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- accessibility, frontend
Research direction
Start with the fullscreen button in src/deck-engine/DeckChromeViewer.tsx and DeckChromePresenter.tsx, then the isFullscreen initial value in DeckController.tsx. Hide the button when document.fullscreenEnabled is false, add aria-label={EXIT_DECK_LABEL} to the presenter's Exit button, and move the compact bar's ✕ and chevron sizes into named constants in viewerBarLayout.ts. Done when a wide browser without the Fullscreen API shows no fullscreen button, and the engine's tests pass.
Written by the indexing model from the issue text.
Description
Why
There are three small gaps in the bars.
- Fullscreen.
src/deck-engine/DeckChromeViewer.tsxandDeckChromePresenter.tsxdraw the fullscreen button at every non-compact width, even in a browser with no Fullscreen API (document.fullscreenEnabledis false, as on an iPhone held in landscape). There the button does nothing, which reads as broken.DeckController.tsxalso startsisFullscreenatfalse, even when the page is already fullscreen. - Names. The presenter bar's Exit button has no
aria-label, unlike the viewer's, which usesEXIT_DECK_LABEL. - Glyph sizes. On the compact bar, Exit's ✕ and the chevrons share one 20px size. Exit is the control most often reached for in a hurry; a slightly larger ✕ (22px) and slightly smaller chevrons (18px) make it easier to find.
What changes
- Both bars render the fullscreen button only when
document.fullscreenEnabledis true, checked once. isFullscreenstarts from!!document.fullscreenElement.- The presenter's Exit gets
aria-label={EXIT_DECK_LABEL}. - On the compact bar, Exit's ✕ is 22px and the chevrons are 18px, each as a named constant beside the bar's other sizes in
viewerBarLayout.ts.
Done when
- At a wide width, a browser without the Fullscreen API shows no fullscreen button, and F does nothing.
- Every presenter-bar button has an accessible name.
- The engine's tests pass.
Out of scope
- The presenter's previous and next glyphs, which issue 18 covers.
- Any layout change.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 30m
- Merged PRs (30d)
- 9
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
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 johnfrog76/connected-deck
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
johnfrog76/connected-deck#21 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
johnfrog76/connected-deck#19 ·
-
enhancement good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
johnfrog76/connected-deck#18 · 3 comments ·
-
enhancement
Difficulty 3/5 1-2 days Newbie friendliness 70/100
johnfrog76/connected-deck#23 ·
-
enhancement
Difficulty 3/5 Half a day Newbie friendliness 66/100
johnfrog76/connected-deck#20 ·
All issues in johnfrog76/connected-deck
Similar issues
-
Add: Class TV ModaOpencheck:passed streams:add
Difficulty 1/5 Under an hour Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
GiganticMinecraft/seichi-playguide#183 ·
Maintainers usually reply within 1 day
-
area: core complexity: easy impact: medium
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
ueberdosis/tiptap#8668 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
longbridge/nsh#804 ·
Maintainers usually reply within 1 day