Feature breakdown · built with CraftHQ
In-app help tips
Size
IFPUG does not size a copy/content change as a transaction.
Every screen explains itself inline, in plain language, so there is no separate manual to read.
Workflow
How it moved through the workflow
Select a stage. The build shipped, so every stage is complete; a person approved the merge.
Request
Rewrite the help-tip wording across the product in plain language, so each screen explains itself.
Questions
One decision was recorded before building: keep the long explainer banners, or fold them into title-level tips with the content preserved.
Approved
The product owner signs off the breakdown by moving the story into the approved state, and the build runs against that reference.
Definition of ready
Building
This change shipped as one pull request. CraftHQ's build agents made the change with its tests; a failing check halts the work until it passes.
Checks
Three checks run on every pull request: one on the product owner's machine as CraftHQ builds, one on the engineer's machine before review, and a code-quality scan in CI. Merging is gated by the CI check passing and a person's approval, enforced by branch protection.
Review
An engineer reviews the pull request and merges it.
Merged
The pull request is merged to main after a person approves it. Nothing merges without that approval.
Definition of done
Breakdown
The feature breakdown
Business first, then the engineering view. Tab through it.
Overview
The gap it closes
A screen that needs a manual is a screen people get wrong. The help has to be inline, short, and in plain words.
Who uses it
Every user of the product, on any screen.
User story
As a user, I want a short, plain-language help tip where I need it so that I can use a screen without training.
Examples
Example 1
A user is unsure what a field is for. They open the help tip beside it and read a one-line explanation in plain language, without leaving the screen.
Example 2
A user opens a tip by keyboard, reads it, and closes it with Escape. The tip text is always in the page and announced to a screen reader, so it works without a mouse.
Dependencies & risks
Depends on
A single shared info-tip component used across every screen. The tip text is written into each screen's markup, not loaded from a content system.
Risk & mitigation
Tips written in jargon would not help. Reduced by keeping the wording short and plain and by holding the behaviour in one shared, accessible component.
How it works
Simplified diagrams of the parts involved, the steps of one request, and where it runs.
Architecture
- 1views
- 2opens a tip
- 3reveals in place, announced via aria
Sequence
- 1open a help tip
- 2reveal the tip; its text is in the DOM and announced
- 3the tip, revealed in place and announced to a screen reader
Infrastructure
- 1page request
Acceptance criteria
Each scenario is written as a Gherkin spec. The Engineering tab shows the test that covers each one, or notes where it was verified by review.
@platform @ui @helpFeature: In-app help tipsAs a userI want a short, plain-language help tip where I need itSo that I can use a screen without trainingEvery screen explains itself inline with a short tip in plain language, so there is no separate manual to read.Background:Given a screen uses the shared help-tip componentRule: Help is available inline and in plain languageScenario: A help tip opens where the user needs itGiven a field or a title has a help tipWhen the user opens the tipThen a short explanation is shown in plain language next to itRule: The tip reveals, pins and is announcedScenario: The tip reveals on hover or focus and pins on clickGiven a field or a title has a help tipWhen the user hovers or focuses the triggerThen the tip is revealed, and a click pins it until Escape or an outside click closes itScenario: The tip text is in the page and announcedGiven a help tipWhen the page is read by a screen readerThen the tip text is present in the page and announced through aria-describedby, not the title attributeRule: The tip is reachable without a mouseScenario: A tip opens and closes by keyboardGiven keyboard focus is on a help-tip triggerWhen the user activates it from the keyboardThen the tip opensAnd pressing Escape closes itAnd the trigger carries a screen-reader descriptionRule: A folded explainer banner keeps its content in a title tipScenario: Opening a title tip shows the former banner contentGiven a screen's explainer banner was folded into a title-level tipWhen the user opens the title tipThen the former banner content is shownAnd none of the content is lost@edge-casesScenario Outline: The tip opens and closes by the expected inputsGiven a help tipWhen the user "<input>"Then the result is "<result>"Examples:| input | result || hovers the trigger | the tip is revealed || clicks the trigger | the tip is pinned || presses Escape | the tip closes || clicks outside the tip | the tip closes |
Questions
Questions raised in planning, each with the decision taken.
Should long explainer banners stay, or fold into title-level help tips?
Long banners take up the screen and push the real work down. A title-level tip keeps the explanation but hands the screen back to the user.
Components touched
Shared info-tip component
One inline info-tip used across every screen: it reveals on hover or keyboard focus, pins on click, and unpins on Escape or an outside click. Its text is always in the DOM and announced via aria-describedby (not the title attribute), so it works for touch and screen readers.
In-screen content
The tip text is written into each screen's markup. It is not data-driven and has no server or content-management source.
Content rewrites
The tip wording is plain, short and jargon-free; long banners fold into title-level tips with the content kept.
Data touched
Noneread
This feature is presentation and content only; it reads and writes no business data.
Security decisions
- This feature reads and writes no business data, so it adds no new data-access surface.
Subtasks
- A shared info-tip component used product-wide, with hover and keyboard reveal, click-to-pin, and Escape or outside-click to close.
- aria-describedby wiring so the text is in the DOM and announced.
- Rewrite the content in plain language and fold banners into title tips.
How each scenario is verified
- The tip renders with an accessible name and its text in the DOMA unit test renders the trigger with an accessible name and the bubble in the DOM, and checks it starts unpinned.
- A link-variant tip anchors its bubbleA unit test checks a link variant right-anchors its bubble and carries rich markup.
- Keyboard open and Escape closeVerified by review of the component's reveal, pin, keyboard and aria behaviour.
Notes
- The shared component holds the behaviour; the tip text is written into each screen, not loaded from a content system.
- The tip is reachable by keyboard, closes on Escape, and is announced through aria-describedby.
Risk tier
UI A person approves every merge. This is a UI-tier change; it is checked by review and the component unit tests. Content and layout were verified by review, as the content is static.
Activity
Pull-request window for rewriting the tip wording.
- Pull request opened: rewrite the help tips in plain language
- Merged to main after a person approved
Start here
Want this on your backlog?
Get a free baseline report on one repository, or scope a 3-month pilot measured against what your team’s work costs today.