• Aller au contenu
  • Aller au menu
  • Aller à la recherche

CPU ⬜ Carré Petit Utile

CPU

Carré, Petit, Utile : Le programme radio des gens du numérique.
Tous les Jeudi à 11h sur Radio <FMR>

  • Programmes
  • Interviewes
  • Chroniques
  • Chercher
  • Suivez-nous !
  • CPU
  • ⬜
  • Chroniques
  • ›
  • Standard
  • ›
  • Standard : Les paramètres de hash et les Media fragments
  • ← précédent

Standard : Les paramètres de hash et les Media fragments

jeudi 12 octobre 2023. Chroniques › Standard

  • communication
  • infrastructure
  • protocole
  • réseau
  • standard
  • web

Extrait de l'émission CPU release Ex0214 : Disséquons une URL, seconde partie.

Pour terminer sur ce chapitre fumeux qu'est le hash, on va parler de son écriture de paramètres.

Profitant du fait que les navigateurs web ignorent les hash qui ne font pas référence à des éléments [via leur attribut id] d'une page web, dès le milieu des années 2000s et avec l'arrivée des premiers scripts dynamiques HTML, des applications web avant l'heure vont s'en emparer. Et afin de garder un état, ou de s'en servir depuis un lien externe, ces scripts vont manipuler la partie hash d'une URL, souvent de manière très très libre, voire anarchique.
J'ai souvent vu et lu que le # permet de mettre n'importe quoi derrière, j'appelle ça la soupasse de hash… comme un state JSON-encodé pour une app en Angular. Oui, j'ai vu ça. Je vous dis pas les effets de bord, c'était rigolo, surtout que les clés bougent !

Seulement même ici, dans le hash d'une URL va arriver un standard, mais un standard qui n'est pas nativement repris dans les navigateurs web… du moins pas encore à l'heure actuelle.

Si vous ne le savez pas, un hash peut lui aussi comporter plusieurs paramètres dans la même syntaxe qu'une query, c'est-à-dire clé=valeur,valeur avec des & en séparateurs de clés, et , en séparateurs de valeurs.
C'est le standard Media Fragments par le W3C qui l'a mis en place ; un standard trop méconnu et trop rarement implémenté, voir pas nativement compris par les navigateurs. Le standard prévoyait de prendre qu'une portion géométrique ou temporelle d'une image, d'un son ou d'une vidéo.
En gros, le fonctionnement normal du hash où l'on présente qu'une partie de document devait s'étendre pour tous les autres documents qu'un navigateur web peut prendre en charge.

Par exemple, la clé t= spécifie une position temporelle dans un son ou une vidéo d'une page. La valeur est exprimée en nombre entier de secondes, avec le zéro pour le début temporel du média.
Et vous savez quoi ? Si vous êtes sur notre site web cpu.pm, vous l'utilisez sans vous rendre compte : Notre lecteur de sonores CPU-Audio l'utilise pour lier un sonore dans une page à un moment précis. Par exemple, avec https://cpu.pm/0191#t=500,1000, notre player va lire le sonore de cette page depuis un instant A jusqu'à un instant B.

Plusieurs autres sites web se servent de cette notation. Dailymotion le faisait très bien et l'a supprimé (encore une coupe sombre de Bolloré), là où Youtube utilise la même syntaxe, mais ne vous la propose qu'en query, ce qui est… déplacé, alors que la syntaxe t= y marche aussi en hash.

Je remercie Thomas Parisot de m'avoir fait découvrir les média fragments. Vous pouvez pas imaginer combien avoir écrit une bibliothèque javascript pour supporter les media fragments m'a été super utile pour la production de CPU et pour la compréhension de certaines parties des navigateurs web.
Prenez notre player CPU-Audio, c'est un WebComponent open source, indépendant des frameworks, et il a plein de fonctionnalités sympas.

Il existe un usage des paramètres de hash en natif, dans le navigateur Chrome de Google. Et ce n'est pas un hasard : Google propose dans Chrome de mettre un motif de texte à rechercher dans un document via le hash, avec la clé #:~:text= . Il va alors mettre en surbrillance et scroller là où le texte est présent dans la page. C'est pas con, c'est plutôt élégant mais… c'est pas standard et les autres navigateurs web ne l'ont pas adopté.
En attendant, si vous faites des pages web avec beaucoup de texte, il vaut mieux ponctuer ses documents avec des éléments identifiés avec l'attribut id.

Le problème du hash est que dans l'usage natif des URL supporté par les navigateurs, c'est à dire uniquement l'id d'un élément de la page, ben le hash ne sert qu'à ça, le navigateur ignore superbement les changements de hash si en plus d'une ID, vous mettez des paramètres complémentaires. C'est normal : c'est expressément demandé dans le standard.

Et d'ailleurs, cela nous a posé des soucis d'accessibilité dans le développement de notre lecteur CPU-Audio. Vous savez, l'accessibilité, ces fonctions que souvent on oublie de vérifier, mais qui finalement sont si utiles à tout le monde…

Texte : Da Scritch
Photo : Scattered puzzle pieces next to solved fragment CC-By horiavarlan Old Photo Profile, détail

Pièces jointes

  • 0214-CPU-Standard-mediaquery(12-10-23).mp3

Aucun commentaire

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées. Votre e-mail ne sera pas affiché.

Menu

Catégories

  • Programmes
  • Interviewes
  • Chroniques
    • Enfant du futur immédiat
    • Ainsi naquit
    • Artefact du passé
    • Feedback
    • Histoire
    • How to
    • La mascotte
    • Le Gourou
    • Lexique
    • Plantage
    • Standard
    • Archéologie du Futur
    • Légende
    • Paillasse du design
  • Hors micro
  • Teaser

Séries

  • Arrière-guichet
  • Au service informatique de Sa Majesté
  • Bio is the new Black
  • Bulletin de santé d´Internet 2017
  • Crie si tu sais…
  • Elles codent
  • Futurs alternatifs
  • Histoires de la cryptographie
  • Killed By App
  • Langages machine
  • lost and found
  • Made in Japan 日本製
  • Paranoid android
  • Parce que c’est Notre Projet Souverain
  • Quelque chose de totalement différent
  • Radio numérique
  • Read That Funky Manual !
  • Recycle
  • Situation critique
  • Webmasters

Toutes les séries

Mots-clés

  • communication
  • communauté
  • politique
  • infrastructure
  • développement
  • design
  • matériel
  • standard
  • organisation
  • logiciel
  • sécurité
  • éducation
  • électronique
  • éthique
  • maker
  • humour
  • marketing
  • prototypage
  • web
  • vie privée

Tous les mots-clés

Menu extra

Suivez-nous !

  • 🎵 Podcast des émissions
  • 🎧 …pour Android
  • 🎧 …via Apple Podcast
  • 🎧 …via Google Podcast
  • 🎧 …en newsletter
  • Comment faire

Réseaux sociaux

  • @cpu@Mastodon.tetaneutral.net
  • BlueSky @cpu.pm
  • Xwitter @CPUprogramme
  • LinkedIn company/cpuprogramme
  • Facebook /programmecpu
  • Nous écrire par e-mail

Développeurs

  • Da Scritch
  • Enflammée
  • Gabriel
  • Infested Grunt
  • Solarus
  • René Speranza
  • Toute l'équipe

Producteurs

  • Radio <FMR>
  • Silicium
  • Ça Fait Écho
  • Régie publicitaire

Code source (github)

  • CPU-Audio web component
  • Thème Dotclear "CPU-15"
  • CPU podcaster
  • Youtube future playlist

Pages juridiques

  • Documentation du programme
  • Licence de l'émission et des sonores
  • Politique de confidentialité 🍪
  • Mentions légales

Interviewes et chroniques en licence CC-BY-NC ⬜ Émissions © DaScritch et l'équipe pour Radio <FMR> ⬜ Propulsé par Dotclear