Pour bien comprendre ce que l'on appelle un lien vide voici un petit exemple (vous comprendrez leurs intérêts en lisant l'article include pattern dans les microformats :

<a class="include" href="#ancre" title="James Levine"></a>

Dans ce cas, aucun texte n'est présent entre les balises <a> et </a> : il s'agit d'un lien vide.

L'équipe a réalisé un certain nombre de tests (avec ou sans attribut title, utiliser un espace pluôt qu'une chaîne vide, ...) pour vérifier le comportement de 4 versions lecteurs d'écrans sur 3 versions de navigateurs. La plupart du temps de nombreux problèmes d'interprétation sont identifiés (lecture de l'URL absolue, annonce d'un lien sans nom, ...). L'exemple idéal semble être celui cité en exemple ci-dessus, avec l'attribut title rempli, sans aucun espace entre les balises <a> et </a> et sans l'avoir masqué via les CSS. Cependant, ce lien n'est interprété que lorsque la lecture des attributs title est activée sur le lecteur d'écran, on ne peut donc pas espérer que cette solution fonctionne dans tous les cas. En résumé, le lien vide n'est pour le moment pas une solution accessible.

Je vous publie ici les recommandations pour développeurs Web écrites en guise de conclusion par l'équipe ayant effectuée ces recherches. Cette liste de choses à ne pas faire peut s'appliquer à la plupart des liens (non vides) :

  1. Always have proper link text for a link, and assure that the link text makes sense in context. At that point the link can then be hidden by positioning it offscreen. If the link is styled with display set to none, ensure that the content makes sense with and without the link text in place.
  2. Never have an anchor with jusst an href attribute. The screen reader fallback is to read out the entire URL or try to extrapolate something readable from it, or a combination of both. This can lead to unpredictable results. How a browser or screen reader translates a URL into text that is read out requires more extensive testing.
  3. Never use visibility: hidden to hide an empty link from view. This leads to the title attribute being ignored in both JAWS/IE6 set-ups, and the absolute URL of the link being read out with Firefox. It also introduces a dependency on CSS to prevent an accessibility barrier.
  4. Never use just white space as the link text, the choice of link text between the setups tested differ significantly, with all combinations creating an accessibility barrier - either of reading an entire absolute URL, or guessing the link text based on URL extrapolation, or as in Window Eyes announcing a link, but with no link text read out.
  5. Never use display: none as a means of hiding this link. This creates a dependency on CSS, since the rendering of the page in screen readers is degraded.
  6. Never rely on the title attribute as the sole means of providing a form of link text since it’s inconclusive whether title attributes are enabled for all screen reader users.
  1. Ayez toujours un texte de lien pertinent, et assurez vous que celui-ci ait du sens dans son contexte. Ce faisant, le lien peut alors être caché en le positionnant hors de l'écran. Si le lien est stylé avec la propriété display à none, assurez vous que le contenu ait du sens avec ou sans la présence du texte du lien.
  2. N’utilisez jamais une ancre avec le seul attribut href. La réaction du lecteur d’écran est de lire l’URL en entier ou d’essayer d'extrapoler quelque chose de lisible pour lui. Cela peut mener à des résultats imprévisibles. La manière dont un navigateur Web ou un lecteur d’écran traduit une URL en texte prononçable requiert des tests plus appronfondis.
  3. N'utilisez jamais visibility: hidden pour masquer un lien vide de la vue. L’attribut title sera alors ignoré avec le couple JAWS/IE6 et l’URL absolue du lien sera lue avec Firefox. It also introduces a dependency on CSS to prevent an accessibility barrier.
  4. N'utilisez jamais un simple espacement comme texte d'un lien, le choix du texte de lien entre les configurations testées diffère de manière significative. Avec toutes les combinaisons testées un problème d'accessibilité est engendré – soit en lisant l’URL absolue, soit en devinant le texte du lien à partir de l’extrapolation de l'URL, ou comme avec Window Eyes (NDT: il s'agit d'un lecteur d'écran) en déclarant un lien mais sans aucun texte lu.
  5. N’utilisez jamais display: none comme moyen pour masquer ce lien (NDT: soit un lien qui contient de l'information essentielle comme c'est le cas pour les microformats). Cela créé une dépendance avec la CSS, le rendu de la page sur le lecteur écran est dégradé (NDT: les résultats montrent que le lien est totalement ignoré).
  6. Ne jamais compter sur l’attribut title comme unique moyen de fournir du texte à un lien puisqu’il est évident que l’attribut title ne sera pas activé chez tous les utilisateurs de lecteurs d’écran.

Tout ceci souligne encore une fois les précautions à prendre pour l'usage du display: none ou pour l'emploi de l'attribut title.
Encore une fois, rendez-vous sur l'article Empty Links and Screen Readers pour consulter les tests, leurs résultats et comprendre l'origine de ces recommandations.