Pre-onboarding content, a11y & Core-Web-Vitals polish (fonts, signup a11y, i18n) #65

Stängd
öppnade 2026-07-19 06:59:00 +00:00 av supernaut · 0 kommentarer
Ägare

Severity: MEDIUM→LOW — pre-onboarding bitborg-web audit (2026-07-19). Content, a11y, and Core-Web-Vitals polish before onboarding. Grouped; split if useful.

Core Web Vitals (biggest wins — recommend doing together)

  • M7 — Montserrat woff2 files are not subset (~87–91 KB each, 4 variants); a latin+latin-ext subset lands ~20–30 KB/weight. Subset via fonttools/glyphhanger (U+0000-024F, U+2000-206F + needed punctuation).
  • M8 — <Font preload /> (src/layouts/base.astro:81) preloads all four variants incl. italics (~355 KB). Drop preload; manually <link rel=preload as=font crossorigin> only regular (+ optionally medium).
  • M9 — <UserMenu server:defer /> (src/components/secondary-navigation.astro:36) has no slot="fallback" → header CLS on every page. Add a skeleton reserving height/width.
  • M13 — fallback-font metric overrides lost without Arial (src/style/font-fallback.scss:1-9): add local("Helvetica Neue"), local("Liberation Sans"), local("Roboto") anchors.

Accessibility

  • M10 — signup errors not reliably announced; no focus management or per-field aria-invalid/aria-describedby (src/components/signup-form.astro:45-95; WCAG 3.3.1).
  • M11 — username field has no visible format hint / title (signup-form.astro:103-110; WCAG 3.3.2).
  • M12 — Cap captcha instruction not programmatically associated (signup-form.astro:151-160); wrap in role=group + aria-labelledby.
  • L6/L7/L8/L9 — breadcrumb current page should be <span> not self-link; FAQ filter uses aria-labelledby not duplicated label; distinguish header/footer "Bitborg" home links; skip link on :focus not only :focus-visible.

Content / i18n (track content-style.md; Swedish tracks Forgejo sv-SE)

  • M3 — English pricing mixes "SEK" and "kr" (src/i18n/ui.ts:98,100,104; pages/en/pricing.astro:94,99) — standardise on "SEK" for EN.
  • M4 — English legal headings use Title Case (content/en/terms.md, privacy.md) — lowercase ## to sentence case (H1 titles may stay).
  • M5 — Swedish "hosta/hosting" anglicism mixed with native "drifta/driftas" (content/sv/docs.md:1, terms.md:5, faq/sv/renovate-cost.md:8, guides/sv/renovate.md:3, pricing.astro:59,75, ui.ts:165) — standardise on driftas/värd.
  • M6 — Swedish footer tagline drops "operated": ui.ts:178 "Ägt och driftat" → "Ägt, drivet och driftat i Sverige."
  • L5 — orphaned nav.cookiePolicy i18n key (ui.ts:51,195), no /cookies page — remove or wire up.
  • L10/L11 — minor sv/en wording divergences; SV Bahnhof link (content/sv/privacy.md:56) points to /en; spell out "configuration" (ui.ts:22).
  • L12 — no Open Graph / social meta tags in src/layouts/base.astro head — hurts share previews/SEO.

Low-risk hardening

  • L1 — CSP is <meta>-only (frame-ancestors ignored; compensated by Caddy X-Frame-Options: DENY). Add object-src 'none'; consider a real CSP HTTP header.
  • L4 — Containerfile pins corepack prepare pnpm@11.8.0 but Volta/packageManager is 11.14.0 (comment claims they match).
**Severity: MEDIUM→LOW** — pre-onboarding bitborg-web audit (2026-07-19). Content, a11y, and Core-Web-Vitals polish before onboarding. Grouped; split if useful. ### Core Web Vitals (biggest wins — recommend doing together) - **M7** — Montserrat woff2 files are **not subset** (~87–91 KB each, 4 variants); a latin+latin-ext subset lands ~20–30 KB/weight. Subset via fonttools/glyphhanger (`U+0000-024F, U+2000-206F` + needed punctuation). - **M8** — `<Font preload />` (`src/layouts/base.astro:81`) preloads **all four** variants incl. italics (~355 KB). Drop `preload`; manually `<link rel=preload as=font crossorigin>` only regular (+ optionally medium). - **M9** — `<UserMenu server:defer />` (`src/components/secondary-navigation.astro:36`) has no `slot="fallback"` → header CLS on every page. Add a skeleton reserving height/width. - **M13** — fallback-font metric overrides lost without Arial (`src/style/font-fallback.scss:1-9`): add `local("Helvetica Neue"), local("Liberation Sans"), local("Roboto")` anchors. ### Accessibility - **M10** — signup errors not reliably announced; no focus management or per-field `aria-invalid`/`aria-describedby` (`src/components/signup-form.astro:45-95`; WCAG 3.3.1). - **M11** — username field has no visible format hint / `title` (`signup-form.astro:103-110`; WCAG 3.3.2). - **M12** — Cap captcha instruction not programmatically associated (`signup-form.astro:151-160`); wrap in `role=group` + `aria-labelledby`. - **L6/L7/L8/L9** — breadcrumb current page should be `<span>` not self-link; FAQ filter uses `aria-labelledby` not duplicated label; distinguish header/footer "Bitborg" home links; skip link on `:focus` not only `:focus-visible`. ### Content / i18n (track content-style.md; Swedish tracks Forgejo sv-SE) - **M3** — English pricing mixes "SEK" and "kr" (`src/i18n/ui.ts:98,100,104`; `pages/en/pricing.astro:94,99`) — standardise on "SEK" for EN. - **M4** — English legal headings use Title Case (`content/en/terms.md`, `privacy.md`) — lowercase `##` to sentence case (H1 titles may stay). - **M5** — Swedish "hosta/hosting" anglicism mixed with native "drifta/driftas" (`content/sv/docs.md:1`, `terms.md:5`, `faq/sv/renovate-cost.md:8`, `guides/sv/renovate.md:3`, `pricing.astro:59,75`, `ui.ts:165`) — standardise on driftas/värd. - **M6** — Swedish footer tagline drops "operated": `ui.ts:178` "Ägt och driftat" → "Ägt, drivet och driftat i Sverige." - **L5** — orphaned `nav.cookiePolicy` i18n key (`ui.ts:51,195`), no `/cookies` page — remove or wire up. - **L10/L11** — minor sv/en wording divergences; SV Bahnhof link (`content/sv/privacy.md:56`) points to `/en`; spell out "configuration" (`ui.ts:22`). - **L12** — no Open Graph / social meta tags in `src/layouts/base.astro` head — hurts share previews/SEO. ### Low-risk hardening - **L1** — CSP is `<meta>`-only (`frame-ancestors` ignored; compensated by Caddy `X-Frame-Options: DENY`). Add `object-src 'none'`; consider a real CSP HTTP header. - **L4** — Containerfile pins `corepack prepare pnpm@11.8.0` but Volta/`packageManager` is `11.14.0` (comment claims they match).
supernaut lade till detta till projektet Bitborg Web 2026-07-19 07:04:51 +00:00
Logga in för att delta i denna konversation.
Ingen milstolpe
Inget projekt
Inga tilldelade
1 deltagare
Notiser
Förfallodatum
Förfallodatumet är ogiltigt eller utanför gränserna. Använd formatet "åååå-mm-dd".

Inget förfallodatum satt.

Beroenden

Inga beroenden satta

Referens
bitborg/bitborg-web#65
Ingen beskrivning angiven.