title: For iOS, Safari, VoiceOver, how do I get VoiceOver to read something other than the text content?
body: <p>I am trying to get VoiceOver to say something other than the specified text content in an HTML span element:</p>
  
  <pre><code>&lt;span tabindex="0" class="myClassName" id="DateLabel" role="heading"&gt;1:02a&lt;/span&gt;
  </code></pre>
  
  <p>Consider the case where I might like VoiceOver to say the full time text.</p>
  
  <p>When I add the aria-label attribute, VoiceOver is still reading the text, despite desktop browsers like IE and Chrome correctly reading the aria-label instead.</p>
  
  <p>When I add the aria-labelledby attribute plus a hidden aria label element, I am able to get VoiceOver to read the alternate narration, and NOT the text content.  However, I find this only works if the aria-role is a widget role like button or link.  This is bad because I don't want to imply to users that this is an interactive element they can activate.  VoiceOver annoyingly appends "button" to the end of the narrated sequence.  I would prefer to use a structural role like "heading" but then VoiceOver just reverts reading the text content instead of reading my hidden narration.</p>
  
  <p>Please help!  I've been bashing my head against this but I simply cannot stand iOS's non-standard implementation of ARIA.  I don't understand why they must be different from desktop browsers for something so simple but they are in so many places and I cannot find a good document outlining the exact behavior anywhere.</p>