--- status: implemented date: 2025-02-04 --- # Time Display Displays current time, duration, or remaining time. ## Problem Video players need to display time: 1. **Current playback position** — updates continuously 2. **Total duration** — static once source loads 3. **Remaining time** — duration minus current, often with negative sign Requirements: - Digital format: `1:30:45` or `5:30` - Conditional hour display (hide when duration < 1 hour) - Proper accessibility (screen readers need human-readable time, not "1:30") - Composable for common patterns like `1:30 / 5:00` ## Anatomy ### React ```tsx import { Time } from '@videojs/react'; // Standalone // Composed ``` ### HTML ```html ``` ## Accessibility ### Screen Reader Approach Following [Media Chrome's pattern](https://github.com/muxinc/media-chrome/blob/main/src/js/media-time-display.ts): `aria-label` for the static role label ("Current time"), `aria-valuetext` for the dynamic human-readable value ("1 minute, 30 seconds"). **No live regions.** Time updates too frequently and would overwhelm screen readers. Users who need time info can navigate to the control. **Negative sign is `aria-hidden`.** The `aria-valuetext` already says "4 minutes, 30 seconds **remaining**" — announcing "minus" or "dash" would be redundant. **React uses `