Eliminarea atributului title din imagini

30 dec. 2010, 16:36:17
Vizualizări: 34.2K
Voturi: 4

Caut o modalitate de a elimina atributul title din imagini, preferabil prin utilizarea unui hook sau a unui filtru.

Majoritatea clienților nu își bat capul să ofere imaginilor un titlu adecvat, eliminând astfel scopul acestui atribut. Prefer să nu existe tooltips decât să am unele aleatorii și nedescriptive.

1
Comentarii

Da, primesc această întrebare des, chiar dacă nu este cea mai bună practică, unor clienți nu le pasă. Folosesc metoda JavaScript de mai jos, în caz că își schimbă părerea mai târziu. (+1 pentru că este o întrebare validă, chiar dacă nu este cea mai bună idee...)

addedlovely addedlovely
17 iun. 2011 12:46:07
Toate răspunsurile la întrebare 3
5

dezgura puternic această abordare. O practică mai bună și mai sustenabilă ar fi să-i educi pe clienții tăi cu privire la valoarea atributului title și să-i înveți cum să-l folosească corect.

Pur și simplu să-l elimini este doar un pansament pus pe simptom, nu combaterea cauzei problemei.

Totuși, dacă totuși dorești să elimini acest atribut, există câteva metode:

Folosește un Filtru de Conținut

Conținutul postărilor este procesat printr-un filtru înainte de a fi afișat pe ecran. Acest filtru face mai multe lucruri: transformă ghilimelele drepte în ghilimele curbate, capitalizează litera P din WordPress etc. De asemenea, gestionează shortcode-urile prezente în conținut.

Poți să treci conținutul printr-un filtru care utilizează expresii regulate pentru a găsi tag-urile <img /> și să elimine atributul title.

Folosește un Plugin

O căutare rapidă în depozitul de plugin-uri a returnat Img Title Removal, un plugin care pretinde că face exact ceea ce dorești. O scurtă privire asupra codului arată că implementează exact prima opțiune:

<?php
/*
Plugin Name: Img Title Removal
Plugin URI: http://www.glauserconsulting.com/2008/11/nu-agency/
Description: Plugin de filtrare care elimină toate tag-urile title de pe imaginile din postări.
Author: Ivan Glauser
Version: 0.2.1
Author URI: http://www.glauserconsulting.com
*/

add_filter('the_content', 'remove_img_titles');

function remove_img_titles($text) {

    // Extrage toate tag-urile title="..." din html.
    $result = array();
    preg_match_all('|title="[^"]*"|U', $text, $result);

    // Înlocuiește toate aparițiile cu un șir gol.
    foreach($result[0] as $img_tag) {
        $text = str_replace($img_tag, '', $text);
    }

    return $text;
}
?>

Folosește JavaScript

O a treia opțiune ar fi să elimini dinamic atributele title după ce au fost randate pe pagină. Dacă trebuie neapărat să le elimini, acesta este sistemul pe care l-aș recomanda, deoarece title va rămâne în codul HTML (pentru cititoarele de ecran), dar va fi eliminat când documentul se încarcă, astfel evitând tooltip-urile "aleatoare și nedescrise".

Folosind jQuery, poți selecta toate elementele <img /> de pe pagină care au un atribut title și să-l elimini. Exemplu:

jQuery(document).ready(function($) {
    $('img[title]').each(function() { $(this).removeAttr('title'); });
});
30 dec. 2010 17:18:59
Comentarii

Cititoarele de ecran utilizează atributul alt. Atributul title nu ar trebui să fie niciodată un instrument de accesibilitate.

fuxia fuxia
30 dec. 2010 20:49:34

Plugin-ul este exact ceea ce căutam. Mulțumesc!

heintore heintore
3 ian. 2011 19:20:59

Aceasta a fost marcată pentru atenția moderatorului cu același sentiment ca toscho mai sus și câteva link-uri http://www.456bereastreet.com/archive/200412/the_alt_and_title_attributes/ http://www.rnib.org.uk/professionals/webaccessibility/wacblog/Lists/Posts/Post.aspx?id=38 poate merită revizuit?..

Rarst Rarst
5 mai 2011 23:34:40

Ciudat că nu văd steagurile pe propriile mele lucruri decât dacă îmi văd propriul profil ... revizuit.

EAMann EAMann
16 iun. 2011 17:09:46

+1 pentru metoda JavaScript. Nicio pierdere de conținut pentru motoarele de căutare.

addedlovely addedlovely
17 iun. 2011 12:44:32
0

Iată o soluție fără JavaScript care nu necesită modificarea nucleului WordPress, încercați acest cod în fișierul functions.php al temei dumneavoastră.

add_filter( 'wp_get_attachment_image_attributes', 'remove_image_text' );
function remove_image_text( $attr ) {
    unset( $attr['alt'] );
    unset( $attr['title']) ;
    return $attr;
}
15 mai 2013 23:04:17
5
-5

Dacă cauți o modalitate de a lăsa câmpul <input> pentru titlu gol și să nu se încarce automat cu numele fișierului la încărcarea unei imagini, iată o soluție:

Accesează wp-admin/includes/media.php

Linia 911 <input type='text' class='text urlfield' name='attachments[$post->ID][url]' value='" . esc_attr($url) . "' /><br />

Schimbă-o în: <input type='text' class='text urlfield' name='attachments[$post->ID][url]' value='' /><br />

De asemenea, am mulți clienți cărora nu le pasă de acest aspect.

30 dec. 2010 17:42:40
Comentarii

nu aș modifica un fișier de bază, deoarece acest lucru va duce la probleme atunci când faceți upgrade la WordPress. Dacă este posibil, este mai bine să utilizați un hook.

Jan Fabry Jan Fabry
30 dec. 2010 18:43:44

Da, nu este cea mai bună soluție, cum am putea face asta cu un hook?

kevin kevin
30 dec. 2010 19:03:57

Nu pot spune acest lucru suficient de clar: nu modificați fișierele de bază!!! ... http://wordpress.stackexchange.com/questions/1639/what-are-some-reasons-why-you-should-not-hack-wordpress-core-files

EAMann EAMann
30 dec. 2010 20:04:57

De acord, NICIO DATĂ NU MODIFICAȚI NUCLEUL – tocmai de aceea există filtre. Dacă nu poți adăuga un filtru sau o acțiune, atunci trebuie să găsești o altă cale. DAR NICIODATĂ NU MODIFICAȚI NUCLEUL!!!!

xLRDxREVENGEx xLRDxREVENGEx
16 iun. 2011 21:08:24

Amuzant cât de emoțional devine acest subiect. Cum spuneau în antichitate: „Toate drumurile duc la Roma” :)

kaiser kaiser
17 iun. 2011 06:15:34