TimelineAccessibility.h header

#include <ew/app/TimelineAccessibility.h>

Namespace ew::app

Functions

QString ew::app::timelineEventAccessibleLabel(const QString &title, const QString &startText, const QString &endText, const QString &untitledPlaceholder)

Composes the single line a screen reader announces for a timeline event (TL-427 accessibility): the event's name, then its date – and for a lasting event BOTH the start and the end, so "a thirty-year war" is heard as a span rather than a point.

startText / endText are the event's instants ALREADY formatted in the reader's own calendar by the caller; libs/app has no project to format a date against, exactly as the ruler takes its label widths in rather than measuring a font. An empty endText – or one equal to startText – is an instant and announces a single date; an empty startText (ordinal mode, no date at all) announces just the name. An empty title announces untitledPlaceholder so a nameless event is still reachable by assistive tech, never a silent gap in the list.

A custom-painted canvas of rectangles is invisible to a screen reader unless every event is given text like this; that is the whole point of the requirement.