I’ve avoided using aria-description as I didn’t think it was well supported. The biggest gap was VoiceOver on Mac and iOS. But we have an interface that could benefit from this attribute, so I created a test page and I’m happy to report that VoiceOver now supports aria-description.
The standard for applying secondary information to an element was aria-describedby. But this depends on a visible string to provide the information. An early hack was to create a container with display:none, as this could still be accessed by ARIA.
The aria-description allows us to include a string instead of an identifier to a separate object. This should be information surfaced to assistive technology that may depend on visual context. Don’t abuse this, as repetitive use is annoying and defeats the purpose of highlighting context.
Here’s a test page to see how aria-description works on a button, form field, and image: Test: aria-description.