subdocument-splitting-plan

This commit is contained in:
rehlert committed 2026-10-06 22:52:35 +02:00
1 parent f09384d2e6
commit ca06ca2050
47 files changed
+4097 -136

No files matched your search

+126
View File
@@ -0,0 +1,126 @@
# Plan: Start page — make the beA context obvious
**Status: Done**
## Problem
The start page (`src/routes/+page.svelte`) presents itself as a generic "PDF-Werkzeuge" site:
- Hero headline: **"PDF-Werkzeuge"**
- ZIP dropzone: label **"ZIP-Archiv bearbeiten"**, sublabel "ZIP-Datei hier ablegen oder zum
Auswählen klicken", aria label "ZIP-Archiv bearbeiten"
- Drag overlay: **"ZIP-Archiv hier ablegen"**
- `<title>`: `juri-merger — PDF-Werkzeuge`
The ZIP the user is supposed to drop here is, in reality, an archive exported from the
**besondere elektronische Anwaltspostfach (beA)** — that's what `/tools/bea` processes and what
the whole product ("beA-Edit", see `agents.md`) exists for. Nothing on the start page says so.
A user seeing any random ZIP has no hint which one belongs in this slot.
Goal: keep the toolbox-hub structure (hero + beA entry point + tool tiles), but reframe the copy
so that (a) the beA origin of the expected ZIP is unmistakable and (b) the overall positioning
shifts from generic "PDF tools" to "workbench for beA exports (+ extra PDF tools)".
## Target copy (proposal)
### 1. Hero / page identity
- `<title>`: from `juri-merger — PDF-Werkzeuge` to
`beA-Edit — Werkzeugkasten für das besondere elektronische Anwaltspostfach` (long form) or
`… für beA-Archive` (short form, see D1).
- H1: from `PDF-Werkzeuge` to **`Werkzeugkasten für beA`**.
- Subline: currently only the generic privacy line. Replace with a lead sentence explaining beA:
„Bereiten Sie ZIP-Archive aus dem besonderen elektronischen Anwaltspostfach (beA) auf — plus
praktische PDF-Werkzeuge.“ — then keep the existing privacy line as a second sentence.
This keeps "PDF-Werkzeuge" discoverable for anyone who knew the old wording but leads with beA.
### 2. ZIP entry point (the core fix)
- Label: **„beA-ZIP öffnen"** instead of "ZIP-Archiv bearbeiten".
- Sublabel: „ZIP aus dem besonderen elektronischen Anwaltspostfach (beA) hier ablegen oder zum
Auswählen klicken".
- Add a small example/hint line inside or under the dropzone:
„Tipp: In beA exportierte Archive enden meist auf `.zip` und enthalten Anlagen als PDF."
(exact wording see D2 — including whether to show typical archive contents)
- Icon inside the dropzone next to the "+" (e.g. Lucide `Mail`/`Postbox`-like or `Archive`)
to visually distinguish it from the plain-PDF tool tiles below.
- Dropzone keeps `accept=".zip,…"`. No functional change to filtering — dropping any ZIP still
routes to `/tools/bea`.
### 3. Full-window drag overlay
- Text: **„beA-ZIP hier ablegen"** (currently "ZIP-Archiv hier ablegen"), optionally with the
subline „Archive aus dem besonderen elektronischen Anwaltspostfach".
### 4. Tool grid section heading
- Currently: „Werkzeuge". Change to **„Weitere PDF-Werkzeuge"** — this is where the words
"PDF-Werkzeuge" live on after the hero shift, clarifying these tiles are the _secondary_,
general-purpose part while beA sits above.
## Code touchpoints
All copy lives in exactly three files; no component API changes required:
1. `src/routes/+page.svelte`
- `<title>`, H1 + sublines in the Hero block
- props passed to `FileDropzone`: `ariaLabel`, `label`, `sublabel` (add a hint element below
the dropzone if D2 decides for it)
- drag overlay text
- "Werkzeuge" → "Weitere PDF-Werkzeuge"
1. `src/routes/+layout.svelte` — only if global header/footer copy mentions the product role
(check during implementation; likely unchanged).
2. `tests/e2e/toolbox.spec.ts`
- Line ~88 asserts the heading name `'PDF-Werkzeuge'` → update to the new H1
(`'Werkzeugkasten für beA'`).
- Any other selectors keyed on the old labels must be swept (search tests for
"ZIP-Archiv" / "PDF-Werkzeuge").
Accessibility notes:
- The new sublabel contains the full term + abbreviation once per page; use `abbr`-free plain
text (screen readers handle "beA" fine as-is). Keep `aria-label` identical to the visible
label to avoid divergence.
## Open decisions (defaults marked ✅)
### D1 — How far to push the rebrand?
- ✅ **A. Lead with beA, keep toolbox**: H1 "Werkzeugkasten für beA", tool grid becomes
"Weitere PDF-Werkzeuge". Minimal risk, preserves both audiences.
- B. Full rename to "beA-Editor": hero only about beA, tools demoted into an opt-in section
further down. Stronger positioning, hides the newer tools behind scroll/click.
### D2 — Where does the explainer text live?
- ✅ **A. Short hint line inside/below the dropzone** (one sentence naming "besonderes
elektronisches Anwaltspostfach"). Cheap, always visible where it matters.
- B. Info popover/question-mark icon expanding details (typical file names, how to export from
beA). More room, more moving parts.
- C. Both A and B if users actually need export instructions (needs user feedback).
### D3 — Also update other beA-named strings for consistency?
- ✅ **A. Yes, sweep for consistency**: e.g. documents/README references and `ZipDropzone.svelte`
sublabels inside `/tools/bea` should also say "beA-ZIP" so terminology matches across pages.
Copy-only sweep, no behavior change.
- B. Only the start page; leave inner pages untouched.
## Implementation phases
Single phase — this is copy + one test file.
1. Apply copy changes in `src/routes/+page.svelte` (+ optional consistency sweep per D3).
2. Update `tests/e2e/toolbox.spec.ts` expectations.
3. Run `pnpm check`, `pnpm lint`, `pnpm build`, and the e2e suite.
4. Manual browser pass: hero, dropzone, drag-overlay, keyboard focus order unchanged;
verify window-wide drag of a ZIP still lands on `/tools/bea`.
5. Update `agents.md` / README wording if D3 = A touches those files.
## Risks
- Very low. Pure copy change; only test breakage possible (heading/label assertions), covered
by running the spec suite. SSR-safe: no new logic, all changes static markup.