MobilePress: blog in versione mobile

Analisi del plugin mobile per Wordpress e download del mio tema gratuito.

Chi gestisce un sito web ormai non può più rinunciare ad avere una versione su misura per i dispositivi mobili. Avevo parlato in passato di soluzioni come Mofuse, ma ho trovato la soluzione ideale per le mie esigenze scoprendo il plugin MobilePress.

Esistono vari plugin per mettere online con pochi clic la versione mobile di un blog WordPress (basti pensare a Wp Touch), ma le grandi possibilità di personalizzazione di MobilePress mi hanno convinto più di ogni altra cosa.

Tra i suoi punti di forza includo:

  • Possibilità di creare temi per la versione mobile, sfruttando le stesse logiche dei temi standard per WordPress
  • Possibilità di fornire un tema esclusivo per iPhone/iPod Touch
  • Nessuna difficoltà di installazione e configurazione

Parlando dei difetti, l’unico che ho trovato riguarda l’interfaccia di amministrazione, in particolare l’assegnazione del tema. Se non riuscite a vedere il template corretto sul vostro iPhone, è perché il tema relativo a questo dispositivo viene assegnato separatamente rispetto a tutti gli altri dispositivi mobili. Sarebbe meglio avere un’impostazione di default per dare inizialmente a tutte le piattaforme lo stesso tema, iPhone compreso.

Scarica il mio tema base

Viste le possibilità che questo plugin mette a disposizione, sarebbe interessante realizzare una raccolta di temi gratuiti per dispositivi mobili, così come succede già su WordPress.org per i temi standard.

Voglio dare il mio contributo mettendo a disposizione la base del mio tema mobile, che ho realizzato modificando quello di default. Ho tradotto alcuni testi, modificato il formato delle date ed ottimizzato il codice HTML riducendolo all’essenziale.

MobilePress Theme (.zip – 14kb):

Potete considerarla come una base di partenza su cui fare le vostre personalizzazioni, come il cambio di colori o l’eliminazione di elementi non rilevanti per una versione mobile. Su tomstardust.com ad esempio ho limitato tutto alla visualizzazione dei soli post, nascondendo le pagine. Il mio tema comunque le include, potete decidere autonomamente come gestirle.

Se avete suggerimenti o consigli su quello che vorreste trovare nella versione mobile di un sito, dite la vostra nei commenti: il futuro della rete passerà sempre più attraverso i dispositivi mobili.

Le funzioni wp_list_pages e wp_page_menu di WordPress

Un confronto tra le due soluzioni disponibili per creare un menu di navigazione.

Su WordPress esistono due funzioni php essenziali per la gestione dei menu di navigazione: wp_list_pages e wp_page_menu. Che abbiate un semplice blog o un sito più complesso, in ogni caso avrete quasi sempre bisogno di un menu di navigazione, anche solo per includere i link alla homepage, alla pagina about ed a quella dei contatti.

Le due funzioni hanno alcune differenze: wp_page_menu è stata introdotta dalla versione 2.7 e va ad estendere wp_list_pages, che comunque fa ancora egregiamente il suo dovere. Recentemente mi sono imbattuto in queste funzioni per un aggiornamento al tema Stardust, ed ho deciso di condividere quello che ho scoperto.

La funzione wp_list_pages

Se lavorate con WordPress, conoscerete bene questo template tag, esistente ormai da anni:

<?php wp_list_pages(); ?>

Il suo punto di forza sono le possibilità di personalizzazione.

Escludere una pagina dal menu

Una delle opzioni più usate è quella che consente di nascondere dal menu alcune pagine. Per farlo è sufficiente usare il parametro exclude (in questo caso elimina dall’elenco le pagine con ID 1 e 7:

<?php wp_list_pages('exclude=1,7'); ?>

Mostrare solo le pagine di primo livello

Un altro parametro molto utile è depth, che permette di nascondere tutte le sottopagine e controllare la profondità del menu:

<?php wp_list_pages('depth=1'); ?>

In questo caso, depth=1 mostra solo le pagine di primo livello.

Nascondere il titolo

Se invece non avete bisogno del titolo prima dell’elenco delle pagine, ad esempio perché il menu non è nella sidebar ma disposto in orizzontale, potete usare il parametro title_li:

<?php wp_list_pages('title_li='); ?>

La funzione wp_list_pages offre ottime possibilità di personalizzazione, e spesso è più che sufficiente. Per tutti i dettagli vi consiglio di consultare anche la pagina ufficiale su WordPress.org, dove sono illustrati i parametri utilizzabili ed i rispettivi valori.

La funzione wp_page_menu

Dalla versione 2.7 di WordPress è stato introdotta la funzione wp_page_menu, che aumenta le possibilità a disposizione degli sviluppatori. La differenza principale con wp_list_pages è nel codice che viene generato, e nella possibilità di mostrare un link alla homepage.

Usando la funzione

<?php wp_page_menu(); ?>

Questo sarà l’HTML creato:

<div class=”menu”>
  <ul>
    <li class=”current_page_item”><a href=”…” title=”…”>Pagina attiva</a></li>
    <li class=”page_item”><a href=”…” title=”…”>Pagina</a></li>
    …
  </ul>
</div>

Non c’è quindi bisogno di aggiungere codice HTML intorno alla funzione php, tutto il necessario viene generato automaticamente.

Cambiare la classe associata al menu

Per cambiare la classe del menu, è sufficiente usare il parametro menu_class:

<?php wp_page_menu('menu_class=navigation'); ?>

Mostrare un link alla home nel menu

La novità principale però riguarda il parametro per includere automaticamente un link alla homepage:

<?php wp_page_menu('show_home=1'); ?>

Utilizzando wp_list_pages questo era possibile solo inserendo manualmente nel template un link alla home, ma è una soluzione poco elegante. Inoltre possono esserci problemi quando la prima pagina del blog è una pagina statica: il link alla homepage apparirebbe duplicato.

Con wp_page_menu questo non accade: con un parametro è possibile gestire tutto senza problemi.

Altri parametri

Una caratteristica non è specificata sulla documentazione ufficiale, ma è fondamentale: la funzione wp_page_menu supporta tutti i parametri di wp_list_pages, essendo un’estensione di quest’ultima.

Se ad esempio volete creare un menu con classe “nav”, mostrando anche la homepage e solo un livello di profondità, questa è la funzione:

<?php wp_page_menu('menu_class=nav&show_home=1&depth=1'); ?>

Potete approfondire il discorso sulla pagina di wordpress.org dedicata alla funzione, ricordandovi quindi anche di wp_list_pages.

Quale funzione utilizzare?

La presenza di due funzioni simili potrebbe confondere le idee, ed in effetti viene da chiedersi quale sia l’utilità del conservarle entrambe. La risposta è da cercare nella retrocompatibilità per le vecchie versioni di WordPress.

Se però dovete sviluppare un nuovo tema e non avete problemi di questo tipo, il mio consiglio è di sfruttare fin da subito wp_page_menu. I vantaggi non sono incredibili ma ci sono: i vostri visitatori non noteranno niente di diverso, ma voi avrete un codice più facile da mantenere.

Come personalizzare i default Widget di WordPress

Una guida alla creazione di Widget personalizzati per Wordpress.

Wordpress LogoWordPress include una serie di widget molto utili, che possono essere inseriti fin da subito all’interno di ogni tema. Possono essere visualizzati gli ultimi commenti, i post più recenti ed una serie di altre informazioni utili gestendo tutto dal pannello di amministrazione.

Spesso però i default widget sono limitati e non adatti a tutte le occasioni: potreste avere la necessità di eliminare una particolare categoria dagli ultimi post, o di modificare il codice html con cui viene presentato il box di ricerca.

La soluzione fortunatamente esiste e non è complessa: è possibile infatti recuperare i widget esistenti, modificarli e farli apparire sul pannello di amministrazione accanto a quelli standard.

I passi da seguire

Se avete un minimo di basi di php, creare i vostri widget è semplice. Questa è la procedura in sintesi:

  1. Aprite il file wp-includes/default-widgets.php, dove sono presenti tutti i widget di default.
  2. Individuate il widget da personalizzare. Ognuno ha qualche riga di commento che ne chiarisce la funzione, ma i nomi delle classi sono già autoesplicativi: WP_Widget_Search, WP_Widget_Recent_Comments, WP_Widget_Tag_Cloud, ecc.
  3. Copiate tutto il codice del widget che vi interessa dentro il file functions.php del vostro tema (se non l’avete, createlo).
  4. Personalizzate il nome della classe in tutte le sue occorrenze e le altre informazioni necessarie (ad esempio la descrizione che appare sul pannello di amministrazione).
  5. Modificate il codice secondo le vostre esigenze. Qualche esempio? Personalizzare i link del widget meta, cambiare il form nel widget della ricerca, mostrare gli ultimi post di una specifica categoria… le possibilità sono infinite.
  6. Aggiungete subito dopo la definizione del nuovo widget, nel file functions.php, la riga
    register_widget('nome_del_widget_personalizzato');

I vantaggi di questo metodo sono notevoli:

  • Non è necessario conoscere php approfonditamente, basta saperlo leggere per poter aggiungere qualche riga di codice
  • E’ possibile aggiornare WordPress senza problemi
  • Il nuovo widget appare sul pannello di amministrazione, e può essere usato anche da utenti non esperti (l’ideale quando si ha a che fare con clienti poco tecnici)

Se decidete di personalizzare i widget, fate però attenzione: non modificate direttamente il file default-widgets.php, è bene che il core di WordPress resti intatto. Utilizzare functions.php è l’ideale: eviterete possibili problemi e soprattutto potrete aggiornare WordPress senza preoccupazioni. Gli update della piattaforma sono frequenti e spesso essenziali per motivi di sicurezza, non è mai bene vincolarsi ad una particolare versione.

Il tema Stardust localizzato in italiano su WordPress.org

Stardust è ora disponibile in un’unica versione internazionale, già localizzato in italiano.

Stardust - tema WordPressIl tema Stardust per WordPress, con la nuova versione 2.5 disponibile su WordPress.org è pronto per essere tradotto in più lingue. Attualmente sono disponibili la versione inglese e le traduzioni in italiano e francese, ma con il contributo di alcuni volontari prevedo di aggiungere al tema altre localizzazioni, come il tedesco. Per questa nuova versione ringrazio Celogeek, che si è offerto di rendere compatibili tutti i testi del tema esistente.

Vi basterà scaricare il nuovo tema, ed attivandolo i testi appariranno automaticamente nella lingua corrispondente alla vostra installazione di WordPress.

Cosa è cambiato?

Visto dall’esterno, non ci sono differenze tra la precedente versione italiana (per la quale ringrazio ancora Carlo Perassi) e quella localizzata. I cambiamenti sono tutti nel codice: ogni stringa di testo è scritta in inglese, e tradotta successivamente con un software come PoEdit.

I vantaggi dal punto di vista dello sviluppo sono diversi, legati alla presenza di un’unica versione del tema. In caso di modifiche successive non sarà più necessario lavorare su temi differenti, ma sull’unica release internazionalizzata di Stardust.

Perchè installare la nuova versione?

Se utilizzate sul vostro blog il tema Stardust in italiano, vi consiglio di aggiornarlo alla versione 2.5. Il vantaggio è che ora tutti gli aggiornamenti dei temi presenti su WordPress.org sono centralizzati ed automatizzati (così come succede con i plugin), e con un click potrete avere sempre l’ultima versione di Stardust. Ho già corretto vari bug ed aggiunto nuove features in questi anni, e continuerò a farlo anche in futuro. Installare il nuovo tema è il modo migliore per mantenerlo sempre aggiornato.

Come internazionalizzare un tema WordPress?

Se volete sapere come realizzare un tema per WordPress in modo che possa essere tradotto in più lingue, pubblicherò presto una guida con tutti i dettagli della mia esperienza. Se siete interessati, vi consiglio di iscrivervi al Feed RSS di questo sito.

Se conoscete il tedesco o altre lingue e volete contribuire alla traduzione di Stardust, contattatemi! Aggiungerò le localizzazioni sul tema ufficiale.

Download

Potete scaricare Stardust direttamente dal sito ufficiale di WordPress.

I plugin indispensabili per WordPress

Una raccolta dei migliori plugin Wordpress, da installare sempre e comunque.

Wordpress LogoL’installazione di WordPress è una procedura semplice, che consente di avere un blog pronto in pochi istanti. Un aspetto da considerare riguarda l’installazione dei plugin: qualsiasi sia il genere del sito creato, è sempre indispensabile aggiungere qualche funzionalità non inclusa di default.

In questo post ho raccolto 10 plugin WordPress indispensabili, suddivisi per importanza. Esistono innumerevoli articoli del genere in rete, ma il mio obiettivo è quello di trovare la combinazione ideale per qualsiasi scopo, dal blog personale al sito della piccola azienda. Ho limitato anche il numero dei plugin all’essenziale, perchè c’è sempre il rischio che i rispettivi sviluppatori smettano di seguire l’evoluzione di WordPress: meglio pochi, ma aggiornati.

Mi piacerebbe avere anche il vostro parere nei commenti, in modo da raccogliere più suggerimenti possibili. Dite la vostra se pensate manchi qualcosa di importante. Ecco l’elenco dei plugin.

Plugin essenziali

Akismet

Immancabile, Akismet è un plugin obbligatorio se non volete essere sommersi dallo spam. Basta attendere qualche giorno dalla creazione di un nuovo blog: non appena i motori di ricerca inizieranno ad indicizzarlo, comincerete a ricevere commenti indesiderati, che saranno bloccati da Akismet.

Google XML Sitemaps

Se volete che il vostro sito venga indicizzato, potete facilitare il processo segnalando la vostra sitemap a Google. Questo plugin si occupa di crearla per voi ogni volta che pubblicate o modificate un post, inviando anche la segnalazione a Google. Il mio consiglio è comunque di segnalare la presenza della sitemap manualmente almeno la prima volta, dagli Strumenti per Webmaster.

All in One SEO Pack

Ero indeciso se inserire All in One SEO Pack tra quelli essenziali: permette di gestire titoli delle pagine, description, keywords e quant’altro direttamente dall’amministrazione di WordPress in maniera SEO-friendly. In realtà non fa niente di più di quello che dovrebbe fare un tema realizzato a dovere, ma se non siete sicuri della bontà del codice del vostro tema, All in One SEO Pack diventa indispensabile.

Google Analytics for WordPress

La soluzione più comoda per integrare il codice di Google Analytics, evitando di dover modificare ogni volta il file footer.php. Permette anche di escludere dai log di Analytics le pagine visualizzate dall’admin.

WordPress Database Backup

Indispensabile se tenete all’archivio del vostro blog e volete evitare qualsiasi problema. Questo plugin permette di effettuare backup del database con un click, ed ha una funzione comodissima per inviare automaticamente via mail i backup ad intervalli regolari. L’ho usato in tutti i blog WordPress che ho gestito.

Plugin da considerare

Contact Form 7

Il modo più veloce per avere un form di contatto attivo in pochi istanti. Il plugin permette di inserire anche più moduli personalizzandoli a piacere. E’ un plugin semplice, ma fa benissimo il suo dovere.

Subscribe To Comments

Questo plugin potrebbe benissimo stare tra quelli indispensabili: è la soluzione più comoda per restare aggiornati sui commenti ad un post. Lo trovate attivo anche su questo sito.

Live Comment Preview

Una soluzione rapida per far vedere ai commentatori l’anteprima in tempo reale di ciò che stanno scrivendo. Questo plugin potrebbe non essere compatibile con alcuni temi, andando in conflitto con altri JavaScript presenti, ma consiglio comunque di provarlo.

No Self Pings

WordPress genera delle notifiche di ping non solo da siti esterni, ma anche tra articoli pubblicati sul vostro stesso blog. Se come me non le sopportate, questo plugin fa per voi. Una volta attivato non vi arriveranno più notifiche di self-ping.

Viper’s Video Quicktags

Plugin indispensabile se avete intenzione di pubblicare dei video all’interno dei vostri post, senza impazzire con il codice embed di YouTube ed affini. Supporta numerosi siti (YouTube, Vimeo, Flickr, Google Video…) ed è sicuramente il plugin più diffuso nel suo genere.

Pensate ci siano altri plugin indispensabili? Segnalateli nei commenti, ma ricordate che la selezione è stata fatta cercando di pensare ad un’installazione di WordPress generica, con plugin utili per tutte le circostanze.

La funzione body_class() di WordPress 2.8

Guida alla personalizzazione delle singole pagine di un blog Wordpress, con una semplice funzione php.

La versione 2.8 di WordPress introduce una novità molto utile per chi sviluppa dei temi. E’ stata infatti creata una nuova funzione php, chiamata body_class().

Utilizzandola nel template è possibile avere delle classi differenti sul tag HTML body, a seconda della pagina visualizzata. Questo consente di personalizzarne l’aspetto esclusivamente tramite CSS, senza bisogno di creare template su misura.

Per utilizzarla è sufficiente aggiungerla nel tag body, che di solito è nel template header.php, in questo modo:

<body <?php body_class(); ?>>

Il risultato sulla homepage del blog sarà:

<body class="home blog">

mentre su un singolo articolo (ad esempio con ID 23):

<body class="single postid-23">

E’ possibile anche aggiungere una o più classi personalizzate a piacere, che appariranno insieme alle altre:

<body <?php body_class('nome-classe'); ?>>

Una funzione php analoga, relativa però ai singoli post, è chiamata post_class(): ne ho parlato in passato, trovate la relativa guida a questo indirizzo.

Le potenzialità di queste funzioni sono notevoli, ma credo sia bene utilizzarle solo se veramente necessario. Soprattutto nel caso di body_class(), il rischio è quello di trovarsi il codice inutilmente appesantito. L’elenco completo delle classi stampate dalla nuova funzione è in questo post di WPEngineer.

Interagire con il Database di WordPress in php

Come sfruttare la classe $wpdb per leggere il Database di Wordpress.

Wordpress LogoSe avete mai realizzato un tema per WordPress, prima o poi avrete avuto la necessità di ricavare delle informazioni dal database non accessibili tramite i template tag di questo CMS. Non ci sono problemi ad ottenere il titolo del blog, di un post, l’elenco delle pagine o delle categorie esistenti, ma quando le necessità si fanno più specifiche diventa necessario scrivere qualche riga in php.

La realtà è molto più semplice di quello che può sembrare: esiste infatti una classe chiamata $wpdb che consente di andare a recuperare qualsiasi informazione dal database. Può essere sfruttata su qualsiasi tabella, anche quelle che non sono state create da WordPress, ma ad esempio da un plugin esterno.

Esempi pratici di utilizzo

Volete visualizzare sulla homepage del blog il numero di utenti registrati? Vi basta aggiungere questa funzione nel file functions.php:

function userCount() {
global $wpdb;
$user_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->users;");
echo $user_count;
}

Dal template index.php basterà poi richiamare la funzione per visualizzare il risultato:

<p>Utenti registrati: <?php userCount(); ?></p>

E’ possibile eseguire anche query più complesse, ad esempio per ricavare un array di elementi da stampare, come l’elenco delle bozze ancora da pubblicare:

function showDrafts() {
global $wpdb;
$fivesdrafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' ");
foreach ($fivesdrafts as $fivesdraft) {
echo '<li>' . $fivesdraft->post_title . '</li>';
}
}

Da visualizzare poi così:

<h3>Bozze in attesa di pubblicazione:</h3>
<ul>
<?php showDrafts(); ?>
</ul>

Questo strumento è interessante, perchè con un minimo di conoscenza del database e delle query possibili, qualsiasi informazione può essere estratta senza difficoltà. C’è un’ottima documentazione a disposizione sul Codex ufficiale di WordPress, di cui trovate anche la traduzione in italiano su wordpress-it.it.

Tra le funzioni a disposizione della classe, potrebbe servirvi $wpdb->show_errors, che visualizza gli errori MYSQL. L’ho trovata molto utile in fase di debug, e se non conoscete bene la sintassi da utilizzare vi sarà di grande aiuto.

Il mio consiglio comunque è di fare qualche test in locale per capire le potenzialità dello strumento: non è così difficile da imparare, anche se non siete dei programmatori. Dopo aver osservato la struttura del database (ad esempio con phpMyAdmin) per conoscere i nomi delle tabelle e dei campi, potrete fare qualsiasi cosa.

WordCamp italiano in arrivo

Si terrà Venerdì 22 e Sabato 23 Maggio a Milano il secondo BarCamp su Wordpress.

Il logo del WordCampQuesto post è per segnalare che la prossima settimana ci sarà a Milano il secondo WordCamp italiano: un appuntamento da non perdere per tutti gli appassionati di WordPress.

L’anno scorso ero presente (potete leggere il resoconto in questo post), ed è stata una bella occasione per conoscere molte persone con i miei stessi interessi. Anche quest’anno non mancherò, ma ci sarò solamente nella giornata di Sabato. Qualcuno di voi ha in programma di venire?

Se volete partecipare potete registrarvi sul sito ufficiale: confermate la vostra presenza e ricordatevi di stampare il vostro badge, sarà più facile riconoscersi.

Chi invece resterà a casa potrà sicuramente leggere ampi resoconti nei giorni successivi all’evento, anche su questo blog. Per gli aggiornamenti in tempo reale invece Twitter rimane lo strumento migliore: potete seguire il mio account, e probabilmente riuscirete anche a trovare dei risultati di ricerca aggiornati con l’hashtag #wordcamp.

Exciter, nuovo tema per WordPress

Disponibile per il download il mio nuovo tema per Wordpress, in italiano ed inglese.

Exciter screenshot

DownloadDemo

Sono contento di poter finalmente annunciare il rilascio del mio nuovo tema per WordPress: Exciter.

E’ un template a colonna singola, minimalista ma efficace per chi vuole un blog focalizzato esclusivamente sui contenuti. Le pagine sono raggiungibili da un menu posizionato nell’header, ma non esiste una vera e propria sidebar.

Le widget infatti appaiono distribuite su due colonne all’interno del footer, che può essere personalizzato facilmente dall’amministrazione di WordPress. Se volete cambiare le widget presenti di default, il mio consiglio comunque è di inserirle in egual numero in modo che la grafica sia bilanciata correttamente.

Supporta tutte le nuove funzioni di WordPress 2.7, i post sticky ed i commenti nidificati e paginati.

E’ presente anche qualche riga di JavaScript per abilitare lo scrolling fluido all’interno delle pagine, spostandosi con le ancore HTML. Potete vedere l’effetto cliccando sul link “top” all’interno del footer, che rimanda all’inizio della pagina corrente (è lo stesso effetto del “torna su” presente in questo sito).

Sono riuscito solo recentemente a trovare il tempo per completarlo dopo l’annuncio di Ottobre 2008, ma spero che il risultato finale vi piaccia: aspetto volentieri critiche e commenti!

Potete scaricare Exciter sia in inglese che in italiano: per l’occasione trovate aggiornata anche la sezione di questo sito dedicata ai temi WordPress.

Intervista ad Elena Brescacin: una Web Developer non vedente

Due chiacchiere con Elena “talksina” Brescacin sull’accessibilità della rete da un punto di vista pratico.

Elena Brescacin è una Web Developer non vedente classe 1980, con cui ho avuto l’occasione di collaborare recentemente per il suo blog personale.

Sono rimasto stupito dalla sua abilità e dalle capacità che ha dimostrato di avere, e così le ho proposto di fare un’intervista per questo sito. Le sue risposte possono essere utili più di tanti tutorial e linee guida, per far capire veramente cosa sia l’accessibilità e quanto sia importante ricercarla nello sviluppo di un sito.

Il risultato è una chiacchierata particolarmente lunga, ma quella di non sintetizzarla è stata una mia scelta. Spero che il risultato finale possa essere interessante per molti.

1. Ciao Elena, puoi fare una breve introduzione su di te?

Ciao, sono Elena Brescacin, 28 anni, cieca dalla nascita. Lavoro come web developer nel settore accessibilità dei siti web, ed ho tanti hobby tra cui la manipolazione dell’audio (realizzo jingle e suonerie), gli scacchi, l’arte marziale taekwon-do e generalmente dare una mano dove possibile ad amici blogger e webmaster.

2. Come sei diventata web developer? Quali strumenti usi per lavorare?

Ho iniziato da autodidatta nel 2000, dopo un paio di esperienze lavorative poco felici avute dopo la scuola superiore. Tramite html.it ho imparato a costruire le mie prime pagine web, il mio primo sito personale, con la possibilità di metterci gli audio e personalizzarlo a mio piacimento e soprattutto di capire che cosa gli altri sbagliassero quando i siti non erano accessibili.

L’interesse per l’accessibilità è venuto da solo, come esigenza di collaborazione tra utente disabile e sviluppatore (non c’è niente di meglio!). Poi ovviamente ho fatto dei corsi sull’argomento, e alla fine ho trovato lavoro nel mio settore.

Come strumenti, dipende dalle esigenze e dal lavoro; passo da prodotti commerciali a prodotti free, anche se la mia maggiore preferenza è per gli editor di codice, più che quelli visuali: questi ultimi mi complicano parecchio la vita in quanto le opzioni sono tutte grafica e punta-e-clicca, cosa che a un vedente aiuta, a un cieco invece crea solo problemi.

3. Quali problemi hai trovato nello svolgere il tuo lavoro, ad esempio con CMS come WordPress?

Come già detto, i problemi sono specialmente imputabili alle funzionalità degli editor visuali; io mi riferisco chiaramente soltanto alla disabilità visiva perché è quella che conosco, ma il problema riguarda tutti.

Che gli editor siano dei programmi per desktop, oppure implementati all’interno di un CMS free o commerciale, spesso gli sviluppatori non tengono conto delle esigenze di accessibilità nelle funzioni facilitate (pulsanti per aggiungere link, immagini, spostare oggetti, ecc) per cui con questi applicativi si possono realizzare siti completamente accessibili lato utente, ma lato amministratore non si riesce a fare quasi nulla.

Il risultato è che un cieco che voglia intraprendere l’esperienza dello sviluppo web, deve avere un’ottima conoscenza del linguaggio di marcatura o programmazione usato per il proprio applicativo. L’unico modo per poter gestire contenuti è quello di disabilitare l’editor visuale e scrivere il codice in formato testo, o comunque trovare degli escamotage che in quanto tali, rallentano di molto il lavoro.

Io sono una lottatrice e non mi lascio certo spaventare da un editor, però molti miei “colleghi” anche loro giovani, si sentono scoraggiati dall’esperienza del web perché costretti in qualche modo ad imparare un linguaggio, mentre i loro compagni vedenti possono sviluppare siti anche senza saper niente di codice.

Certo la padronanza di almeno un linguaggio di marcatura, scripting o programmazione, è un vantaggio perché aiuta a costruire meglio i siti e gli applicativi; di contro, lo svantaggio è che ci sono pochissimi sviluppatori ciechi e per questo l’accessibilità del web è poco sentita, considerata solo una cosa da addetti ai lavori, più che un’esigenza di molti. E le associazioni di categoria fanno troppo poco rispetto alle lacune che si dovrebbero colmare.

4. Hai un esempio pratico di problemi con l’amministrazione di WordPress?

Quando parlavo di “escamotage” posso fare un riferimento concreto: il sistema di widget di WordPress.

Nella versione 2.3 era a dir poco impossibile avere una barra laterale dinamica: i widget erano soltanto trascinabili tramite il mouse quindi mi dovevo far aiutare ogni volta.

Dalla 2.5 per fortuna hanno introdotto un link “aggiungi”, “modifica”, “rimuovi”… in modo che io posso anche da tastiera mettere e togliere i widget a piacimento. Il problema rimane nello spostarli: non posso accedere al drag&drop fattibile solo da mouse, quando basterebbe accanto a ogni widget aggiunto un paio di link “sposta su” e “sposta giù”.

L’escamotage sta nel crearsi un file di testo con tutti i nomi dei widget desiderati, poi rimuoverli tutti, e riaggiungerli uno a uno secondo l’ordine nuovo desiderato. Lavoraccio che, uno fa una volta, la seconda non lo fa più!

5. Quali sono i problemi principali con cui ti scontri navigando su internet, nonostante la tua esperienza?

I captcha.

Uno dei maggiori problemi che un cieco incontra navigando su internet, è oramai la quasi onnipresenza dei captcha, nati per impedire a chi fa pubblicità indesiderata di accedere ai vari servizi: dai semplici commenti su siti o blog, alle registrazioni su portali più complessi e piattaforme di commercio elettronico.

Talvolta questi test sono accompagnati da controlli audio, ma anche questi spesso e volentieri o sono solo in inglese, oppure non si sentono e non si capiscono. Il risultato è che le aziende che fanno pubblicità indesiderata hanno le fonti di reddito per aggirare questi controlli come vogliono, costruendo dei sistemi di calcolo sofisticati, oppure semplicemente pagando pochi dollari a studenti adolescenti ai quali, per dire, basta avere garantita ogni mese la ricarica del cellulare per compilare a mano i sistemi anti-robot.

Un cieco, da queste misure, sarà sempre e comunque discriminato per vari motivi:

  • la privacy che i captcha dovrebbero proteggere, viene nel nostro caso automaticamente violata in quanto dobbiamo dare, o far vedere, i nostri dati sensibili a terze persone. Quando si tratta di password o numeri di carta di credito, sinceramente, la fiducia vale ma sempre fino a prova contraria… per non parlare poi del fatto che ci son servizi che chiedono di compilare un test di sicurezza visuale pure per cambiare o ripristinare la password. Lasciamo stare.
  • anche trovando i siti di studenti che risolvono i captcha (onestamente ammetto di aver tentato di contattarne uno), dicono NO, in quanto loro compilano sì i captcha a 3 dollari l’uno, però devono aver la garanzia di doverne compilare almeno 100. E all’epoca me ne serviva uno.

Un altro grosso problema di accessibilità si ha quando si usano certe funzionalità AJAX, in cui i link sono cliccabili ma non sono visualizzati come tali. Un esempio è la versione standard di GMail, o molti siti di home banking, di cui posso usufruire solo navigando la pagina come se fosse un file Word anziché usare tutti i comandi rapidi che gli screen reader mi offrono.

Poi i flash che scorrono o che non hanno etichette nei controlli, i form con il focus che si muove in automatico sulle caselle di selezione o sui campi di testo, ed immagini e controlli senza testo alternativo.

6. Parlando invece di non vedenti senza la tua esperienza, com’è la situazione attuale della rete? Quali sono i problemi più diffusi?

La situazione è abbastanza difficile da due punti di vista: ci sono dei non vedenti senza esperienza che non hanno voglia di imparare e mettono in difficoltà gli sviluppatori chiedendo sempre la pappa pronta; dall’altro lato alcuni web developer pensano che la creatività venga limitata dall’accessibilità, ed i problemi continuano a rimanere.

L’unico modo per avere una rete accessibile è rispettare gli standard, evitando di “inventarsi” i metodi: ad esempio a che cosa serve creare i punti elenco con delle immagini, quando in HTML ci sono gli attributi ben definiti che permettono di mettere pure i disegnini ma lasciando la lista completamente accessibile?

Parlando dei blog, dovrebbero essere sempre accessibili anche tramite la tastiera, con la possibilità di attivare e disattivare la visualizzazione dei link non indispensabili come i tag: spesso e volentieri questi sono anche una decina per ogni articolo, il che può creare problemi (gli screen reader scorrono tutti i link di una pagina uno ad uno NdTom). Una soluzione per WordPress è in questo articolo di Studio404.

Una considerazione anche sul tabindex: viene messo come requisito di accessibilità, ma mi sento di consigliarlo quasi esclusivamente per i siti statici. In un sito dinamico come un portale o blog non si può mai avere un ordine logico definitivo e la navigazione tramite tab dall’inizio alla fine del blog è fondamentale. Usando il tabindex invece si altera l’ordine di scorrimento, ed il risultato è che un cieco non esperto viene costretto a saltare alcune parti, leggendo come minimo solo un 50% di quello che leggerebbe normalmente.

7. Ci sono dei siti “popolari” a cui vuoi rivolgere delle critiche perchè non accessibili?

Mi creano difficoltà i siti di news: ANSA, Corriere della Sera, Repubblica, Oggitreviso e altre testate giornalistiche che sono piene di Flash e pubblicità che scorrono. Un quotidiano non dovrebbe in alcun modo avere questi problemi! Benedetto chi ha creato i Feed RSS che mi permettono di leggere e scegliere i titoli che mi interessano.

8. Che consigli daresti agli sviluppatori interessati all’accessibilità dei propri siti?

Il consiglio che vale sempre è quello di attenersi più possibile agli standard del W3C, più specificamente alle WCAG 2.0 che, rispetto alla versione precedente, si riferiscono a tutte le tecnologie e non soltanto all’HTML.

Certo non si può imparare tutto a memoria, ma capire e conoscere gli standard è già un buon passo avanti. Inoltre c’è da considerare che non si può parlare di accessibilità senza citare l’usabilità; presentazione e contenuto vanno equilibrati per venire incontro alle esigenze di tutti, non soltanto alla propria creatività.

9. In conclusione, vorresti aggiungere qualcosa?

Solo che sarebbe ora di restituire al web il suo significato originale: worldwide web.

Tutti digitano www sulla barra indirizzi ma non sanno nemmeno cosa significa! La rete dovrebbe essere universale, ma oramai tutti (privati e aziende) vedono il web a modo loro senza rispettare l’accessibilità.

Ci sono situazioni in cui la mancanza di accessibilità può davvero nuocere al diritto sacrosanto di riservatezza delle persone. Basti pensare ai siti riguardanti la salute: un cieco con il bisogno di informazioni su specifici problemi medici sarà costretto a condividere per forza i problemi di salute con qualcuno, magari tutto per colpa di un captcha.

Se tutti gli sviluppatori avessero un po’ più di rispetto e sensibilità verso i fruitori delle loro creazioni, disabili o no, il web sarebbe migliore.