The question I want to make is if it is really necessary to take into consideration screen readers when building a web app.
What will help you answer this question is to NOT consider this text as "extra" or something you add. Because anything you're "adding because maybe some tiny possible group of users might want it" will become one of those "features" or "extras" that, whenever you don't have the time, you drop.
Instead, look good and hard at your HTML. In most cases, text should make and explain all the content in your HTML (a few exceptions here and there).
Then afterwards look at your visual design and take the text you have and need in your HTML and hide it when
- The graphics monkey is a powerful ape and will eat you if you add text where it's not in the design (more on this below)
- The text is redundant because the design makes the meaning of things visually obvious (this is important for users with cognitive issues as well)
- A graphic is replacing the text
One thing I keep in mind when I am simply given a PSD and told "make this" is where text that the content needs can be brought to a user's attention during interaction (showing the text sometimes on :hover, or making related stuff light up/get highlighted on focus, etc). So sometimes my hidden text isn't always hidden.
I also have a few pages we make for clients where visually the designer did not give headings for large chunks of content, but the content by itself made more sense with it (plus each client uses that structure and having the possibility to style headings for a client rather than actually adding them in only then was way better). The fact that screen reader users can navigate by headings is simply a free plus-point.
So in this way, I say yes, it's necessary-- not only because then your stuff works Out Of The Box even for users of AT, but because that text is part of and complimenting your content in the first place.
What probably really is extra-extra work that you'd only be doing for screen reader users is the adding of aria attributes and roles. Which I do because I give rat's butts, but it's something most other developers would drop if time were pressing.