La funzione di query CSS3 media
ha portato a molte interessanti possibilità in termini di sviluppo di siti Web che si adattano a schermi e dispositivi di dimensioni diverse.
Tuttavia, in pratica, sto iniziando ad avere la sensazione che la funzione di query CSS_res media
e l'intero movimento "Responsive Web Design" non siano all'altezza delle sue promesse.
Il problema che vedo è che, alla fine della giornata, gli sviluppatori web si preoccupano principalmente se i loro utenti stanno visualizzando i contenuti tramite un dispositivo desktop, tablet o dispositivo mobile. Ma CSS3 fornisce solo un mezzo per rilevare risoluzione dello schermo . In teoria, il rilevamento della risoluzione dello schermo sembra un ottimo modo per adattarsi a diversi dispositivi. Ma in pratica ...
Supponiamo di avere una semplice funzione Javascript che visualizza solo la larghezza dello schermo:
function foo()
{
alert(screen.width);
}
Sul mio Blackberry Touch, questa uscita:
768
Sul mio Samsung Galaxy, questo output:
800
Quindi ... a questo punto, la risoluzione degli smartphone tradizionali si avvicina molto alle risoluzioni a livello del desktop. La capacità di rilevare se un utente sta visualizzando il tuo sito Web tramite smartphone, tablet o desktop, sembra essere sempre più difficile se tutto quello che stai facendo è la risoluzione dello schermo.
Questo mi fa mettere in discussione l'intera saggezza dietro l'intero movimento "Responsive Web Design" del CSS3 basato su query multimediali. Sembra quasi che la funzione di query media
sia più adatta all'adattamento a una finestra del browser di ridimensionamento su uno schermo del desktop, piuttosto che su vari dispositivi mobili.
Un'altra possibile tecnica per rilevare dispositivi mobili o tablet è utilizzare il rilevamento delle funzionalità, controllando se l'evento ontouchstart
è supportato. Ma anche questo sta diventando sempre più inaffidabile dal momento che molti schermi desktop iniziano a supportare il tocco.
Domanda: Quindi ... come sviluppatore web, se non posso fare affidamento su RWD o rilevamento di funzioni, è user-agent sniffing (notoriamente inaffidabile come sempre) migliore opzione per rilevare i dispositivi mobili?