The recommended approach to providing accessibility for web apps is defined by the Accessible Rich Internet Applications (ARIA) standard. As summarized by Bryan Garaventa in his article on different forms of accessibility, there are 3 main aspects of accessibility for interactive web technologies: 1) keyboard accessibility, 2) screen reader accessibility, and 3) cognitive accessibility.
Further reading on ARIA:
How browsers interact with screen readers, and where ARIA fits in the mix by Bryan Garaventa
The Accessibility Tree Training Guide by whatsock.com
The ARIA Role Conformance Matrices by whatsock.com
Mozilla's ARIA overview article
W3C's ARIA Authoring Practices