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
Specificare il versioning nel path degli URL in ASP.NET Web API
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Miglioramenti agli screen reader e al contrasto in Angular
Miglioramenti nell'accessibilità con Angular CDK
Utilizzare i primary constructor in C#
Eseguire operazioni con timeout in React
Eseguire le GitHub Actions offline
Utilizzare gli snapshot con Azure File shares
Inizializzare i container in Azure Container Apps
Determinare lo stato di un pod in Kubernetes
Disabilitare automaticamente un workflow di GitHub (parte 2)
I più letti di oggi
- Nuova versione per jQuery e prima alpha per jQuery Mobile
- Paginare i risultati con QuickGrid in Blazor
- Utilizzare il trigger SQL con le Azure Function
- Eliminare una determinata proprietà da un oggetto JavaScript
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Modern web apps with Blazor