Comunemente, parlando di HTML5, intendiamo un vasto insieme di specifiche che comprendono nuovi elementi di markup, funzionalità multimediali (audio e video), API JavaScript, CSS3, SVG, ecc.
Alcune di esse sono da tempo supportate praticamente da tutti i principali browser e sono disponibili su ogni piattaforma (desktop Windows, Mac OSX e Linux, tablet e smartphone), altre invece solo in pochi scenari specifici (in particolare le specifiche non ancora stabili, implementate in via sperimentale solo da alcuni vendor).
In uno scenario così frammentato diventa difficile districarsi per decidere se una soluzione ha senso essere adottata oppure no o se conviene fornire anche un'implementazione alternativa (ad esempio nel caso di un lettore multimediale, specificando anche un player basato su plugin come Silverlight o Flash).
Quando posso usare...
A questo scopo può essere utile consultare il sito http://caniuse.com che, per ogni funzionalità di HTML5, fornisce una tabella che riepiloga il supporto della stessa in base al browser e alla relativa versione e un riepilogo complessivo (basato sulle statistiche di diffusione dei browser di StatCounter).Ad esempio la semi-trasparenza per le immagini in formato PNG è supportata da tutti ad eccezione di Internet Explorer 6 ed è disponibile quindi su oltre il 93% dei client, mentre i font definiti in formato SVG hanno una bassa compatibilità (circa il 34%, non essendo implementati da IE, Firefox, OperaMini e su Android 3.0 e precedenti).
Compatibilità di HTML5 con dispositivi mobile e tablet
Per quanto riguarda lo sviluppo per dispositivi mobile il sito http://mobilehtml5.org/ fornisce un livello di dettaglio maggiore rispetto a caniuse.com (che contempla solo Safari Mobile per iOS, Android Browser e Opera Mobile) schematizzando il supporto alle principali feature di HTML5 per le seguenti piattaforme:- Safari Mobile su iOS (iPhone, iPad)
- Android Browser (telefoni / tablet)
- Blackberry Browser (telefoni / tablet)
- Nokia Browser (Meego / Symbian)
- Internet Explorer (Windows Phone)
- Opera (Mobile / Mini)
- Firefox (Android)
- webOS Browser
Come utilizzare questi dati?
Tabelle riassuntive come quelle riportate dai siti indicati qui sopra non devono però essere utilizzate a livello di implementazione ma solo come indicatori statistici per guidare le nostre scelte in fase di progettazione, possibilmente incrociando i dati con le statistiche reali dei visitatori del sito o dell'applicazione o con eventuali requisiti imposti (ad esempio nel caso di un'app sviluppata ad hoc per un certo smartphone o per una Intranet dove il browser è imposto dall'amministratore).In pratica è assolutamente da evitare la così detta browser detection (ovvero modificare il comportamento dell'applicazione in funzione dello user agent del client) in favore della feature detection (ovvero dal determinare applicativamente se una funzionalità è o meno disponibile e agire di conseguenza, tipicamente con implementazioni alternative o un gracefully degrade).
Link e riferimenti utili
Il nostro speciale sullo sviluppo web mobilehttps://www.aspitalia.com/focuson/1267/Speciale-Web-Mobile-Costruire-Applicazioni-ASP.NET-JQuery-Mobile.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire task temporizzati tramite hosted service in ASP.NET Core
Migliorare l'accessibilità tramite l'attributo aria-live
Semplificare il debug delle query generate da Entity Framework Core
Utilizzare l'API del browser fetch
Creare Higher-Order functions in JavaScript
Ottimizzare il codice JavaScript con i Shorthand Patterns - terza parte
Ottimizzare il codice JavaScript con i Shorthand Patterns - seconda parte
Commentare una issue associata ad una pull request tramite un workflow di GitHub
Ottimizzare il query plan di Sql Server nelle query LINQ che usano Contains
Impostare il claim desiderato per il nome utente in ASP.NET Core con Microsoft Identity
Un confronto tra Framework CSS: Foundation, Bulma, TailwindCSS e SemanticUI
Utilizzare azurite come simulatore di Azure Storage