15 lines
676 B
TypeScript
15 lines
676 B
TypeScript
|
|
import { timeDayMonthYear, timeHourMinute } from './time';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Builds a plain-text accessible label for a message row, used when the
|
||
|
|
* visible sender/timestamp header is collapsed and therefore hidden from
|
||
|
|
* assistive technology.
|
||
|
|
*
|
||
|
|
* @param sender - Sender display name (already resolved to a human string).
|
||
|
|
* @param ts - Message origin timestamp in milliseconds.
|
||
|
|
* @param hour24Clock - Whether to format the time using a 24-hour clock.
|
||
|
|
* @returns A label such as `Alice, 1 July 2026 14:30`.
|
||
|
|
*/
|
||
|
|
export const messageAriaLabel = (sender: string, ts: number, hour24Clock: boolean): string =>
|
||
|
|
`${sender}, ${timeDayMonthYear(ts)} ${timeHourMinute(ts, hour24Clock)}`;
|