Acasă » Blog » Browser-ul Safari și câmpurile de formular de tip dată calendaristică

Browser-ul Safari și câmpurile de formular de tip dată calendaristică

Share this post on social!
Dezvoltare front-end Safari Iphone

Compatibilitatea unor aplicații web cu toate sistemele de operare și browserele utilizate este un obiectiv constant al producătorilor (dezvoltatorilor) de interfețe de lucru pentru utilizatori.

Limbajul de etichetare HTML 5 nu este suportat integral și identitc de fiecare browser existent astăzi. Unele atribute sunt identificate și asumate dar nu toate, ceea ce duce în unele cazuri la o funcționalitate incompletă pentru interfața aplicației web. Lucru deloc dorit și de neacceptat.

În acest context, de multe ori se dezvoltă de cod specific pentru browsere/sisteme de operare diferite în scopul asigurării funcționalității corecte integral pe toate tipurile de dispozitive utilizate.

Safari nu recunoaște atributele min și max pentru câmpurile de formular input de tip dată calendaristică

Dacă avem un formular de completare a unei rezervări pentru un loc de parcare* de exemplu, cu data de intrare și dată de ieșire pentru care avem o dată minimă de intrare presetată ne așteptăm ca atributul HTML5 min pe câmpul de dată să impună selectarea unor date calendaristice mai mari sau cel puțin egale cu valoarea datei minime conținute de atributul min. Ceea ce este perfect legitim și mai ales adevărat pentru browserele Chrome, Firefox și altele pentru sistemele de operare Windows și Android.

Însă vom avea surpriza ca pentru Iphone și browserul Safari valoarea atributului min să nu conteze. Ceea ce ne reduce funcționaitatea formularului respectiv.

Soluția decisivă este sa utilizăm o bibliotecă specifică de tip Date Picker care va rezolva toate aceste probleme semnalate.

Dar, în unele situații nu dorim acest lucru, mai ales atunci când nu ne bazăm pe framework-uri grele precum JQuery care ne coboară nota Core Web Vitals (Google Page Speed).

Și atunci putem apela la o soluție de ușor compromis prin care comparăm valoarea selectată de către utilizator cu data minimă păstrată intr-o variabilă JavaScript și forțăm valoarea câmpului dată să fie cel puțin egală cu valoarea minimă după efectuarea selecției.

Este un compromis pentru că utilizatorul nu este constrâns natural din interfață să selecteze singur o dată mai mare decât data minimă ci sistemul ajustează valoarea deja selectată după comparație cu data minimă.

Problema rămâne deschisă, soluția bibliotecii externe este de luat în seamă dacă nu cumva producătorii vor adapta Safari și mai bine prin respectarea fidelă a HTML 5 integral.

Traian Constantin Predan

Traian Constantin Predan

Inginer absolvent al Politehnicii București proiectează și construiește sisteme online. Lucrează proiecte extrem de diverse, îi plac viziunile noi care provoacă la dezvoltarea unor soluții tehnice eficiente și stabile.

Lasă un răspuns