Bonjour,
Pour les besoins d'une application (une petite moulinette wiki -> html, rien de bien méchant), j'envisage, afin de créer des sommaires et de permettre à chaque document html de pointer sur les sections de ses petits copains, de générer les ID directement à partir des titres (c'est la solution la plus simple et la plus robuste [1]). Ainsi le titre de section "Gérer les caractères accentués" se verrait attribuer l'ID "REF:Gérer_les_caractères_accentués".
Or, si cela fonctionne parfaitement côté navigateur, il semble que ce soit en contradiction avec la norme HTML qui spécifie que les IDs ne peuvent contenir, en matière de caractères alphabétiques, que les caractères représentés en ASCII.
Vous me direz que je n'ai qu'à ordonner à ma moulinette de supprimer tout ce qui n'est pas [aA ... zZ] et le tour est joué. Effectivement, ce serait envisageable dans l'hypothèse où seuls des documents utilisant pour base l'alphabet latin seraient traités [2]. Mais j'aimerais vraiment pouvoir m'abstraire de la langue du document source.
Je me retrouve donc devant le dilemme suivant : prendre des libertés avec la norme [3] et me simplifier grandement la vie ou la respecter et alourdir considérablement la gestion des liens entre les documents.
D'où la question qui m'amène, savez-vous si cette norme en matière de création d'ID a un vrai fondement pratique (ie. si ça peut vraiment casser des choses dans la vie terrestre) ou si c'est juste une survivance antique et surannée ? [4]
Voilà, désolé pour ce long premier poste et merci pour vos éventuelles lumières.
-----------------------
[1] L'alternative serait de simplement baser les IDs sur la position des titres dans le document et ainsi obtenir "Titre1", "Titre2", ... , "Titren". Celle-ci est moins robuste car si un titre est inséré ou retranché du document, il faut régénérer tous les documents pointant sur son contenu.
[2] Car un tel élagage appliqué sur des titres en grec/russe/japonais/chinois/... risque fort de générer le même ID pour chaque titre, cassant par la même la navigabilité des documents et l'orthodoxie HTML.
[3] Comme un moteur wiki bien connu (regardez les liens du sommaire), et sans que cela ne défrise le validateur du W3C (testez la page... et pourtant il y a bel et bien un contrôle du contenu des IDs car, pour avoir testé, il fulmine au sujet des espaces et des caractères tels que ">" et "<" ).
[4] Au passage, j'ai comme l'impression qu'il y a un manque sémantique à ce niveau-là. Car la seule limitation qui me vient à l'esprit est l'utilisation de ces IDs dans une feuille style. Or il est clair que jamais elle ne seront utilisées comme telles. C'est bizarre qu'au milieu du délire sémantique personne n'ait songé à séparer les fonctions clé de mise en forme/balise de navigation...
Pour les besoins d'une application (une petite moulinette wiki -> html, rien de bien méchant), j'envisage, afin de créer des sommaires et de permettre à chaque document html de pointer sur les sections de ses petits copains, de générer les ID directement à partir des titres (c'est la solution la plus simple et la plus robuste [1]). Ainsi le titre de section "Gérer les caractères accentués" se verrait attribuer l'ID "REF:Gérer_les_caractères_accentués".
Or, si cela fonctionne parfaitement côté navigateur, il semble que ce soit en contradiction avec la norme HTML qui spécifie que les IDs ne peuvent contenir, en matière de caractères alphabétiques, que les caractères représentés en ASCII.
Vous me direz que je n'ai qu'à ordonner à ma moulinette de supprimer tout ce qui n'est pas [aA ... zZ] et le tour est joué. Effectivement, ce serait envisageable dans l'hypothèse où seuls des documents utilisant pour base l'alphabet latin seraient traités [2]. Mais j'aimerais vraiment pouvoir m'abstraire de la langue du document source.
Je me retrouve donc devant le dilemme suivant : prendre des libertés avec la norme [3] et me simplifier grandement la vie ou la respecter et alourdir considérablement la gestion des liens entre les documents.
D'où la question qui m'amène, savez-vous si cette norme en matière de création d'ID a un vrai fondement pratique (ie. si ça peut vraiment casser des choses dans la vie terrestre) ou si c'est juste une survivance antique et surannée ? [4]
Voilà, désolé pour ce long premier poste et merci pour vos éventuelles lumières.
-----------------------
[1] L'alternative serait de simplement baser les IDs sur la position des titres dans le document et ainsi obtenir "Titre1", "Titre2", ... , "Titren". Celle-ci est moins robuste car si un titre est inséré ou retranché du document, il faut régénérer tous les documents pointant sur son contenu.
[2] Car un tel élagage appliqué sur des titres en grec/russe/japonais/chinois/... risque fort de générer le même ID pour chaque titre, cassant par la même la navigabilité des documents et l'orthodoxie HTML.
[3] Comme un moteur wiki bien connu (regardez les liens du sommaire), et sans que cela ne défrise le validateur du W3C (testez la page... et pourtant il y a bel et bien un contrôle du contenu des IDs car, pour avoir testé, il fulmine au sujet des espaces et des caractères tels que ">" et "<" ).
[4] Au passage, j'ai comme l'impression qu'il y a un manque sémantique à ce niveau-là. Car la seule limitation qui me vient à l'esprit est l'utilisation de ces IDs dans une feuille style. Or il est clair que jamais elle ne seront utilisées comme telles. C'est bizarre qu'au milieu du délire sémantique personne n'ait songé à séparer les fonctions clé de mise en forme/balise de navigation...