Rimuovere l'attributo title dalle immagini

30 dic 2010, 16:36:17
Visualizzazioni: 34.2K
Voti: 4

Sto cercando un modo per rimuovere l'attributo title dalle immagini, preferibilmente attraverso l'uso di un hook o un filtro.

La maggior parte dei clienti non si preoccupa di assegnare un titolo appropriato alle immagini, vanificando così lo scopo di questo attributo. Preferisco non avere tooltip piuttosto che averne di casuali e non descrittivi.

1
Commenti

Sì, mi viene chiesto spesso, anche se non è la pratica migliore, ad alcuni clienti non interessa. Uso il metodo JavaScript qui sotto, nel caso cambiassero idea più avanti. (+1 per essere una domanda valida, anche se non è l'idea migliore...)

addedlovely addedlovely
17 giu 2011 12:46:07
Tutte le risposte alla domanda 3
5

Sconsiglio fortemente questa pratica. Un approccio migliore e più sostenibile sarebbe educare i tuoi clienti sul valore dell'attributo title e insegnare loro come usarlo correttamente.

Rimuoverlo semplicemente significa mettere una pezza sul sintomo, non combattere la causa del problema.

Tuttavia, se vuoi comunque rimuovere l'attributo, ci sono un paio di modi per farlo:

Usa un Filtro sul Contenuto

Il contenuto dei post passa attraverso un filtro prima di essere visualizzato a schermo. Questo filtro fa diverse cose: trasforma gli apici in apici ricci, mette in maiuscolo la P in WordPress, ecc. Gestisce anche gli shortcode presenti nel contenuto.

Puoi far passare il tuo contenuto attraverso un filtro che usa espressioni regolari per trovare i tag <img /> e rimuovere l'attributo title.

Usa un Plugin

Una rapida ricerca nel repository dei plugin ha restituito Img Title Removal, un plugin che afferma di fare esattamente quello che vuoi. Uno sguardo veloce al codice mostra che implementa esattamente l'opzione 1:

<?php
/*
Plugin Name: Img Title Removal
Plugin URI: http://www.glauserconsulting.com/2008/11/nu-agency/
Description: Filtra e rimuove tutti gli attributi title dalle immagini nei post.
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) {

    // Ottieni tutti i tag title="..." dal codice HTML.
    $result = array();
    preg_match_all('|title="[^"]*"|U', $text, $result);

    // Sostituisci tutte le occorrenze con una stringa vuota.
    foreach($result[0] as $img_tag) {
        $text = str_replace($img_tag, '', $text);
    }

    return $text;
}
?>

Usa JavaScript

Una terza opzione sarebbe rimuovere dinamicamente gli attributi title dopo che sono stati renderizzati sulla pagina. Se proprio devi rimuoverli, questo è il sistema che consiglierei perché il title rimarrà nel codice HTML (per i lettori di schermo) ma verrà rimosso al caricamento del documento, evitando così i tooltip "casuali e non descrittivi".

Usando jQuery, puoi selezionare tutti gli elementi <img /> sulla pagina che hanno un attributo title e rimuoverlo. Esempio:

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

I lettori di schermo utilizzano l'attributo alt. L'attributo title non dovrebbe mai essere uno strumento per l'accessibilità.

fuxia fuxia
30 dic 2010 20:49:34

Il plugin è esattamente quello che stavo cercando. Grazie!

heintore heintore
3 gen 2011 19:20:59

Questo è stato segnalato per l'attenzione del moderatore con lo stesso sentimento espresso da toscho sopra e un paio di link 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 forse vale la pena rivederlo?..

Rarst Rarst
5 mag 2011 23:34:40

Strano che non vedo i flag sulle mie cose a meno che non visualizzi il mio profilo... rivisto.

EAMann EAMann
16 giu 2011 17:09:46

+1 per il metodo JavaScript. Nessuna perdita di contenuto per i motori di ricerca.

addedlovely addedlovely
17 giu 2011 12:44:32
0

Ecco una soluzione senza JavaScript che non modifica il core, prova questo nel file function.php del tuo tema.

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

Se stai cercando un modo per lasciare vuoto il campo <input> del titolo e non caricarlo automaticamente con il nome del file durante il caricamento di un'immagine, ecco una soluzione:

Vai su wp-admin/includes/media.php

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

Modificalo con: <input type='text' class='text urlfield' name='attachments[$post->ID][url]' value='' /><br />

Anche io ho molti clienti che non si preoccupano di questo aspetto.

30 dic 2010 17:42:40
Commenti

Non modificherei un file del core, poiché ciò causerà problemi quando aggiornerai WordPress. Se possibile, è meglio usare un hook.

Jan Fabry Jan Fabry
30 dic 2010 18:43:44

Non è l'ideale, come potremmo farlo con un hook?

kevin kevin
30 dic 2010 19:03:57

Non posso dirlo abbastanza chiaramente: non modificare il core!!! ... http://wordpress.stackexchange.com/questions/1639/what-are-some-reasons-why-you-should-not-hack-wordpress-core-files

EAMann EAMann
30 dic 2010 20:04:57

Concordo, MAI MODIFICARE IL CORE ed è proprio per questo che esistono i filtri. Se non riesci ad aggiungere un filtro o un'azione, allora pazienza, trova un'altra strada. MA MAI MODIFICARE IL CORE!!!!

xLRDxREVENGEx xLRDxREVENGEx
16 giu 2011 21:08:24

Divertente come questa discussione diventi emotiva. Come dicevano nell'antica Roma: "Tutte le strade portano a Roma" :)

kaiser kaiser
17 giu 2011 06:15:34