PROJET AUTOBLOG


le hollandais volant

Site original : le hollandais volant

⇐ retour index

Fix CSS et JS pour iOS et Safari

2022-03-04T17:51:48+01:00

Safari sur iOS (et sur Mac) n’utilisent pas Blink, mais Webkit. Apple est parti de son côté avec Webkit et du coup fait un peu n’importe quoi. Ayant désormais un iPhone, je me retrouve à corriger mes sites et outils pour iOS.

Voici quelques trucs et astuces. Cet article sera emmené à être étendu avec le temps.

Zoom lors du tap sur un champ texte

Safari nous zoom la page quand on tape sur un champ texte. Ça part d’une bonne intention, mais premièrement ça déforme la page, et ensuite, quand on sort du champ texte, ça ne dézoome pas. C’est stupide.

La solution qui marche, sans toutefois interdire le zoom à l’utilisateur (ça c’est très important), c’est mettre ce HTML dans votre <head> :

<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=yes"/>

La magie vient du « maximum-scale ». Notez bien qu’il s’agit de l’échelle automatique. Le user-scalable="yes" assure que le zoom à deux doigts reste possible. Si vous mettez « user-scalable="no" », je n’aurais que deux mots : au bûcher !!

Le :hover sur iOS

Sur Vivaldi comme Firefox mobile (android), le :hover est activé lors du tap. Sur iOS il n’en est rien (enfin pas toujours). Ça se résout en ajoutant l’attribut « onclick » sur l’élément. Juste l’attribut, pas de valeur. iOS considère en effet que si l’on click, le hover s’active. Ici on clique, ça n’a pas d’effet directement, mais ça déclenche tout de même le hover.

Alternativement, et en mieux, on peut mettre dans son JS :

document.addEventListener("click", function() { });

Ce qui rend la correction plus rapide que d’ajouter onclick="" partout dans la page.

Certains parlent de mettre un « cursor: pointer » en CSS. Ça aurait été tout à fait pertinent que iOS active le :hover sur un élément dont le curseur est un pointeur (la petite main qui clique), mais malheureusement cette solution ne semble pas fonctionner.

Pour le parsage des dates en JS

La plupart des navigateurs, en JS, quand on leur donne un texte représentatif d’une date, essayent de parser ça comme ils peuvent. C’est censé marcher même quand on leur donne une date en langage naturel, comme « vendredi 4 mars 2022 », qu’ils traduiront en le bon objet de date.

Perso j’utilisais une chaîne de date-heure égale à « 2022-03-04 18:30:59 ». Firefox et Chrome n’ont pas de problèmes pour parser ça. Safari exige qu’on mette un « T » entre la date et l’heure : « 2022-03-04T18:30:59 », sinon il renvoie une erreur.

Safari a raison : le T pour « time » provient de l’ISO 8601 étendue et il faudrait l’inclure tout le temps.
Ceci est donc un rappel que ce n’est pas parce que ça marche sans le T que c’est une bonne pratique.

Placeholder sur [type=date]

Si vous avez un input de type date sans placeholder, alors Firefox et Chrome (blink) mettront une date vide : « jj / mm / aaaa ».

Safari (sur Mac) mettra la date du jour… mais en placeholder, donnant l’illusion que la date est remplie, alors que ce n’est pas le cas. Vérifiez bien que ça soit effectivement le cas dans vos app.

Étrangement, sur iOS, je n’ai pas ce souci, mais il est bien réel sur certaines versions de Safari sur Mac que j’ai pu voir (pas pu regarder plus en détail, désolé).

Les événements load, beforeunload, unload

Ces événements sont dépréciés sur iOS, et ne sont pas forcément fiables ailleurs. En effet, le comportement des utilisateurs sur mobile est de changer d’appli ou d’onglet sans fermer la page, donc sans « unload ». Le problème se pose aussi sur Android, même sur iOS, ces fonctions ne semblent plus fonctionner du tout, ce qui pose effectivement problème dans le cas où l’on ferme l’onglet en cours.

À la place, il est préférable d’utiliser l’événement « visibilitychange » (qui se lance quand on change d’application ou d’onglet) et « pagehide », qui est lancée à la fois quand on change la visibilité de l’onglet et juste avant qu’on le ferme. Dans les faits, pensez à utiliser les deux car le premier agit sur mobile et le second sur desktop. De plus, un bug sur Webkit fait que le « pageHide » n’est pas déclenché quand on change de page lors qu’on clique sur un lien dans celui-ci.

Plus d’information ici (avec un tableau de compatibilité). Et voyez sur les événements supportés par iOS.

Enfin, il en va de même pour l’événement « load », qu’il faudrait remplacer par « pageshow ».

Tueurs d’e-mail

2022-02-18T19:45:35+01:00

Comment dire que ton client e-mail est pourri sans dire que ton client mail est pourri :

Message d’erreur Outlook.
Ça rejoint mon coup de gueule contre GMail il y a des années

Je veux envoyer des fichiers par mail, oui. C’est visiblement un crime, chez Microsoft comme chez Google.

Depuis quand c’est à moi de faire attention à ce que les gens reçoivent ? D’autant plus quand ils demandent à le recevoir ?

Si t’es pas content, tu mets une alerte de leur côté. Une fois que j’ai envoyé mon mail, ce n’est plus mon problème : ils n’ont qu’à configurer leur client e-mail correctement ou changer de service e-mail. Chacun son boulot.

Oui j’aimerais que les jeunes soient formés au numérique et pas déformés au Microsoft. On exige par la loi des gens qu’ils configurent leur Box internet pour empêcher les intrusions et de surveiller l’usage qui en est fait (OpenOffice pourra vous aider), mais en même temps on sait très bien que la majorité des gens en est incapable, au vu de ce genre de messages.

Mais bon, continuez à transformer ce protocole d’échange électronique ouvert et interopérable qui tient et fonctionne depuis 50 ans en un tchat immonde et fermé pour cadre commerco-bullshito-powerpoint.

Bah.

Je crois que j’ai un problème de candidats à la présidentielle

2022-02-14T18:57:32+01:00

Photo d’un bulletin placé dans une urne.
Je crois que j’ai un problème de candidats à la présidentielle.

Aucun ne me convient parfaitement.

Ah. Je crois ne pas avoir été assez clair. Laissez-moi répéter en insistant sur le mot important : aucun ne me convient parfaitement.

Ça veut dire quoi ?

Il y a bien une dizaine de candidats, à droite, à gauche, au centre, en haut, en bas… bref de tous les bords.
Parallèlement, il y a également tout un tas d’enjeux et de sujets divers qu’ils traitent tous plus ou moins à longueur de journée : emploi, économie, impôts, écologie, énergie, santé, éducation, immigration, politique extérieure… vous les connaissez.

C’est quoi le problème ?

Le problème c’est que tous les candidats ont des bonnes idées. Tous les candidats ont aussi des mauvaises idées.
C’est ça mon problème : en votant pour quelqu’un, on ne peut pas garder juste le bon. On doit garder le mauvais aussi.

Dans ces conditions, choisir un candidat revient à choisir non pas le meilleur des candidats, mais sur le moins mauvais. Pas sur celui qui nous correspond, mais sur celui avec le moins de mauvaises idées.

Je pense qu’il y a un paquet de gens qui sont dans cette situation, qui vont soit voter « utile », soit pas voter, soit voter blanc, soit voter nul, soit voter en espérant une améliorant dans un des enjeux tout en sachant que ça plombera tous les autres, etc.

C’est le problème de cette méthode de représentation des citoyens appelé « élections présidentielles » : un vote pour un gus dont on sait pertinemment qu’il n’est pas parfait et qu’il fera de la merde sur certains trucs, en espérant qu’il fera des trucs un peu moins pourris sur d’autres, sans garanties.

Alors pourquoi on vote pour un gus ? Pourquoi on ne peut pas voter pour des idées ? Sur des enjeux en particulier ?

Perso ça me fait une belle jambe de savoir que tel ou telle personne dirige le pays parce qu’on l’aura élu. Je préférerais largement qu’ils fassent des référendums tous les 3 mois à la place, pour discuter d’un sujet, et pas d’une personne.

image de Element5 Digital

À la rédaction du Figaro, ce soir…

2022-02-08T17:37:23+01:00

Probablement entendu à la rédaction du Figaro, ce soir :

Blanquer fait un virage à Pi radians.

(référence)

Fnac, assurance Celside et galère pour résilier

2022-01-31T18:59:59+01:00

En achetant mon récent téléphone, le vendeur (à la Fnac) m’a souscrit à une assurance smartphone, avec les 30 premiers jours gratuits (perso je n’avais rien demandé), je me suis retrouvé avec ça à la fin de la commande. Je trouvais étrange aussi qu’il prenne 15 minutes à consulter ses stocks. M’enfin.

J’ai déjà dit ce que je pensais de ces assurances spécifiques pour téléphones, électroniques ou autre.

Ici j’avais donc une assurance pour 300 € par an (!) et moults garanties. Donc j’ai demandé à résilier ça.

Bah c’est la merde :

Résilier un truc : expectation VS réalité.

Leurs CGU permettent de résilier ça facilement, gratuitement et sans raison durant les 30 premiers jours : un coup de fil, et hop. Ou un courrier simple avec un formulaire joint… que je n’ai pas reçu.

Va pour le coup de fil…

Donc 3j après l’achat, j’appelle. Après 10 minutes d’attente, je suis en ligne avec quelqu’un.

Je donne mon nom, ma référence dossier et je dis « j’aimerais résilier cette assurance ».

Là la personne commence à me demander pourquoi. Je lui dit que je n’ai pas de raison à avoir (dixit les CGU, article 6.2) et je répète machinalement que « j’aimerais résilier ».

Là la personne commence à m’inventer un scénario catastrophe au cours duquel mon téléphone subit des dommages et où l’assurance, dans son infinie bonté arrive à la rescousse*

[*] suggestion de présentation.

Je n’ai pas laissé le temps à la personne de finir son baratin. Je lui ait dit « Excusez-moi de vous interrompre, mais je souhaite juste ré-si-lier, maintenant et sans histoires. ».

J’ajoute que « cela fait trois que je le dis clairement, si je dois le redire une fois de plus je raccroche et vais voir un avocat et il vous fera une lettre puis une mise en demeure. ».

La personne me dit « inutile d’en arriver là, on va résilier ».
Moi : « bien. »
d’autres questions ?
c’est résilié ?
je suis en train de le faire.
– …
c’est fait. Vous recevrez un mail de confirmation d’ici 48 h.
Bien. Merci. Bonne journée.

Je ne me suis pas énervé, j’ai juste été ferme et clair. Aussi j’ai horreur qu’on me prenne pour un demeuré. Si j’appelle pour résilier, c’est pas pour ne pas résilier.

Du coup, il me restait à attendre l’e-mail de confirmation.

Ni 48h ni maintenant (on est 15 jours après), je n’ai reçu quoi que ce soit.
Et non, pas non plus dans les spam.

Du coup, je vais sur leur site et leur formulaire de contact. J’envoie un message. Le site bug, je le renvoie. Pas de réponse.

Quelques jours après, j’envoie un mail à l’adresse trouvé dans l’e-mail de bienvenu.

Je reçois un mail automatique me disant que la demande a été envoyée au broyeur reçue. Mais je n’ai pas eu de suite même après quelques jours.

Le mardi suivant (on est à J+15 après l’achat) j’envoie une LRAR avec une lettre où j’indique vouloir résilier. J’indique clairement ma demande et ses références dossiers. J’ajoute aussi que ça fait suite à mes précédentes tentatives, et j’enfonce le clou en disant que si je me fais prélever une quelconque somme de leur part (signe que la résiliation n’a pas été prise en compte), j’engagerai des poursuites.

Une semaine après (aujourd’hui) je reçois un SMS disant qu’ils ont reçu la demande (laquelle, je ne sais pas : email, courrier, tél ?) et qu’elle sera effective sous 12 jours.

12 jours à parti d’aujourd’hui, c’est à J+31 à partir de l’achat.
1 jour après la fin des 30 jours gratuits, donc.

Rien à foutre : ils me prélèvent un centime, je dépose une plainte jusqu’à ce que me soient remboursés ça.

Oui ça m’énerve. Oui je suis en colère.
Ces pratiques sont honteuses, pour ne pas dire douteuses.

Je hais, de base, ce genre de paperasse. Je déteste aussi les assureurs, qui ne servent à rien jusqu’au jour où on a besoin d’eux : là, ils t’envoient chier avec cordialité. Et avec ton pognon. Et je hais tout ce bordel en plus quand on n’a rien demandé.

Mise à jour du 2022-02-08, soit 3 semaines après mon mail : j’ai eu la réponse et leur confirmation (écrite) que ma résiliation est désormais prise en compte. Bien. Je rappelle que je devais, 48 heures après mon appel, recevoir une confirmation par e-mail de la résiliation. Si je l’avais eu, je n’aurais pas eu besoin de faire un mail suivi d’une LRAR, ni cet article. Souvenez-vous : les paroles s’envolent, les écrits restent. Si ce n’est pas écrit, c’est que ça n’a pas eu lieu. D’où mon obstination absolue à exiger un mail, un courrier, ou un accusé de réception, et ne pas me contenter d’un « oui-oui » au téléphone.


Ne vous faites pas avoir : à moins que ce soit vraiment votre intention (libre à vous de jeter du fric par la fenêtre), NE SOUSCRIVEZ PAS CES TRUCS LÀ : c’est la galère pour en sortir et ils vous feront chier jusqu’au bout.

Et maintenant, quand on achète un truc, il faut aussi déclarer NE PAS vouloir d’assurances et de services à la con ? Bah.

Quant à l’assurance en question, « Celside », filiale de la « SFAM », il suffit de chercher sur Google et voir les différentes mentions sur les forums comme UFC Que choisir pour se rendre compte que c’est du gros n’importe quoi, et que — comme toutes les assurances, y compris l’assurance chômage — ce sont des […nom d’oiseau ici…].

Voilà.


Dans mon cas, on verra ce qui se passe. En attendant, j’ai mes relevés téléphoniques indiquant la date de l’appel, les différents mails envoyés et la note de bonne réception de leur part, ainsi que l’accusé de réception du LRAR, et le courrier envoyé.

La LRAR étant la seule preuve légale, les autres papiers serviront éventuellement pour la bonne foi.

Si vous vous faites avoir : ne perdez pas de temps avec le téléphone et les e-mail. Foncez à la poste avec un modèle de lettre et envoyez ça en LRAR. Y a effectivement que ça qui fonctionne. Et qui soit légal aussi.

Leur formulaire a beau dire « résiliez par courrier », j’imagine qu’ils font ça pour qu’on envoie un courrier simple qu’ils déclareront ne jamais avoir reçu une fois les 30 jours écoulés et les premiers prélèvements effectués (et après, pour résilier, c’est encore plus chiant, et probablement pas gratuit).

Oui je vois le mal partout.
En même temps on parle des assureurs.


Inutile de dire que je ne serais plus jamais client à la Fnac pour quoi que ce soit. Ici, c’était dans une boutique physique, mais ça vaut aussi pour en ligne.

Ça rejoindra Cdiscount, Priceminister et tous les autres groupes qui prennent leurs clients pour des cons.

Étrangement, tous sont des groupes Français.

Amazon ?
Jamais eu une seule prise de tête avec : les problèmes de colis cassés ont été résolus dans l’heure les deux ou trois fois que c’est arrivé en 10 ans.

Achetez français, qu’ils disent.
Allez vous faire foutre, que je réponds.