Empty date input, Chrome, and VoiceOver
I encountered a curious behaviour while reviewing some work for a colleague. Now, as documented by WebAIM Chrome and VoiceOver are not the most popular screen reader pairing
A minimal reproducible example follows:
<label for="startDate">Date range start</label>
<input type="date" id="startDate" />
In Safari, a Webkit-powered browser, and VoiceOver on macOS 27.0 (Golden Gate), the by default the browser displays the current date as a placeholder value. The screen reader output is as follows:
- 0, day, stepper
- 0, month, stepper
- 0, year, stepper
In Vivaldi, a Chromium-powered browser, and VoiceOver on macOS 27.0 (Golden Gate), the output is as follows:
- -3.3%, Day Date range start, stepper
- -9.1%, Month Date range start, stepper
- -0%, Year Date range start, stepper
Weird, eh? Like the default values (“dd”, “mm”, “yyyy”) are being cast to a different data type.
Setting a default value on the date input appears to offer a consistent experience across browser and screen reader combinations:
<label for="startDate">Date range start</label>
<input type="date" id="startDate" value="2026-10-16" />
Happily, some two years after it was first raised on the Chromium issue tracker (#361250561) it appears to have been fixed and is due to be resolved in Chrome v156.