Having done some testing with screen readers here's what I've found works best for dates -
A plain text input with placeholder text showing the date format. Not all screen readers will read placeholder text, so in the past I've used something like a floating div for placeholder text for sighted users and ARIA attributes to provide a summary of the date format for blind users. (There are other ways to get this same effect, this is just an example.)
In addition to this, I provide a button with a link to a calendar control next to the field. This is primarily for sighted users who will find navigating through a calendar handy. For power users / blind people, navigating through a calendar will be relatively slow. Your calendar control should obviously still have ARIA attributes and be screen reader/keyboard friendly, but it's not the primary use-case for a person relying on a keyboard and screen reader.
I've found that this combination neatly meets all users' needs - power users, novices, vision impaired, and mobility impaired.
Why don't I use the HTML5 date input type? Because it's terrible. The styling and options vary heavily from browser to browser. JS-based solutions are much more customizable and consistent.