2017-10-08 1 views
-1

Comment faire partie d'un div invisible pour un lecteur d'écran utilisant jquery? J'essayais d'implémenter readmore readless sur certains textes mais je suis confronté à des problèmes avec le lecteur d'écran mais je dois autoriser l'accessibilité ici. ici est mon code où je montrerai une partie de mon div en fonction du nombre de lignes:Accessibilité pour lecteur d'écran

$(document).ready(function() { 
var divHeight,l=3; 
$('.comment').each(function() { 
var $this = $(this),divHeight; 
var $content = $this.find(".text-content"), 
    lineHeight= $content.css('line-height'); 
    divHeight= ((parseInt(l)+3)*parseInt(lineHeight))+"px"; 
    if($content.hasClass("short-text")){ 
     $content.css("height","auto"); 
    } 
    else{ 
    $content.addClass("short-text"); 
    $content.css("overflow","hidden"); 
    $content.css("height",divHeight); 
    $content.on("focus",function(){ 
     $(this).attr('aria-hidden', 'false'); 
    }) 
    } 
    html='<p class="'+'para'+'"><a href="#" class="morelink morelinkStyle">' + 'more' + '</a></p></span>'; 
    $this.append(html); 
}); 
$(".morelink").click(function(){ 
    var $this = $(this), 
    $elem=$this.parents().find(".text-content"); 
    if ($elem.hasClass("short-text")) { 
     $elem.removeClass("short-text"); 
     $this.html('less'); 
     divHeight = $elem.height(); 
     $elem.css("height","auto"); 
    } else { 
     $elem.addClass("short-text"); 
     $elem.on("focus",function(){ 
      console.log($(this)); 
      $(this).css("border","2px solid red"); 
     $(this).attr('aria-hidden', 'false'); 
     }) 
     $this.html('more'); 
     $elem.css("height",divHeight); 
     $elem.css("overflow","hidden"); 
    } 
    return false; 
    }); 

HTML être:

<div class="comment"> 
<article class="text-content"> 
    <h3>Bedspreads</h3> 
<p>Bedspreads add an elegant, ornamental look to any <a href="/store/category/bedding/10504/">bedroom</a>. They may just sit atop your bed but the right spread can pull an entire room together and create a central focal point to your bedroom. That's why Bed Bath &amp; Beyond offers a large array of bedspreads and comforters to help you find exactly what you are looking for. Wow any visitor or guest with a beautiful,</p> <p>1st para -vibrant floral pattern that brightens up any room, create a bold look with solid colors and modern styling or bring in a traditional design with classic chenille patterns. Turn your room into a viewing experience today with our ever-growing selection.Ut enim ad minim veniam, 
</p> 
<p>2nd para-vibrant floral pattern that brightens up any room, create a bold look with solid colors and modern styling or bring in a traditional design with classic chenille patterns. Turn your room into a viewing experience today with our ever-growing selection.Ut enim ad minim veniam,</p> 
</article> 
</div> 
+0

ici, j'ai prises lignes à 3 initialement dans la variable l – user3771215

+0

j'ai donné hauteur de ligne aux éléments aussi bien – user3771215

Répondre

0

Modification de la hauteur & propriétés de débordement de la div ne cachera pas la contenu d'un lecteur d'écran. Vous devez utiliser display: none dans votre classe de texte court. (En outre, il est plus facile d'écrire la classe dans votre CSS et il suffit d'utiliser jquery pour ajouter/supprimer le nom de la classe).

0

Il y a quelques mois, j'ai été chargé de résoudre le même problème de mise en œuvre des liens «Lire la suite»/«Lire moins» tout en maintenant l'accessibilité WCAG 2.0.

Si vous n'êtes pas opposé à l'utilisation de Bootstrap et jQuery, j'ai une assez bonne solution. La classe bootstrap collapse le permet.

https://jsfiddle.net/rmatnwrm/