Structure, keyboard, and focus
Make every action keyboard operable
Support standard Tab, Shift+Tab, Enter, Space, arrow, and Escape behavior appropriate to each control.
9 minute lesson
Start from the behavior you can observe. Buttons activate with Enter and Space, links with Enter, and the date choice uses a documented native control rather than invented keys.
Keyboard support follows interaction semantics; different widgets have different expected keys. The useful target is not encyclopedic coverage. Make one deliberate choice, observe its consequences, and know which requirement would make you revise it.
It is tempting to add keydown handlers to generic elements without focus, role, or standard behavior. That trades a clear decision for an assumption you will eventually have to debug. The stronger move is to use native controls first and test the expected key model without a mouse. Make the boundary explicit in code and in the project notes.
Tie the decision back to the larger job: Make page structure and every interaction understandable and operable without a mouse. Record enough evidence that another developer can repeat the result without relying on your memory.
Complete registration with the keyboard, including error correction, and record every extra or missing keystroke. Repeat it once with an invalid or hostile condition and write down the boundary the failure revealed.
Lesson completed