I have a CMS template that adds lang="en" to the html element because most pages and the template are in English, but users can create a page (really just main content area content) and specify another language. Thus, the template with header/navigation/footer is still in English, but the main page content can be in another language.
If I set <div id="main-content" lang="es">…</div>, will that lang attribute cascade down to all the sub elements within that div or does each child element also need that lang attribute? Does it vary by screen reader?
An alternative would be to set the <html lang="es"> and add lang="en" for all the non-user-editable template elements such as the header/nav/footer but that would get rather cumbersome.
All the lang stuff I've found is for top-level elements <span lang="en">only some text and no other tags</span> and doesn't address/mention a whole tree.