Les listes numérotées ou à puces RTL sont broken

Exemple concret : ההנחיות בוויקי לגבי שמות - ישראל (Israel) - OpenStreetMap Community Forum

Cette section devrait être numérotée, mais ne l’est pas - probablement à cause d’un mauvais CSS.

Le rendu est un peu différent sur ordinateur, mais toujours cassé.

J’essaierai de le démontrer ici aussi. Je ne sais pas si cela dépend des paramètres du forum. Les listes suivantes sont identiques en anglais et en hébreu.

Numéroté :

  1. Un
  2. Deux
    1. Deux point un
    2. Deux point deux
    3. Deux point trois
  3. Trois
    • Trois point un
    • Trois point deux

Puces :

  • Puce une
  • Puce deux
    1. Puce deux numéro un
    2. Puce deux numéro deux
  • Puce trois
    • Puce trois puce une
    • Puce trois puce deux

ממוספר:

  1. אחת
  2. שתיים
    1. שתיים נקודה אחת
    2. שתיים נקודה שתיים
    3. שתיים נקודה שלוש
  3. שלוש
    • שלוש פריט אחת
    • שלוש פריט שתיים

פריטים:

  • פריט אחת
  • פריט שתיים
    1. פריט שתיים מספר אחת
    2. פריט שתיים מספר שתיים
  • פריט שלוש
    • פריט שלוש פריט אחת
    • פריט שלוש פריט שתיים

D’après l’aperçu - ouais, c’est cassé ici aussi. (Edit : ajout d’une capture d’écran ci-dessous)

2 « J'aime »

Correction suggérée :

1 « J'aime »

Merci, j’espère que cela sera accepté ! J’ai également ouvert une demande pour appliquer ce correctif directement sur le forum OSM : Fix list CSS for RTL languages - This forum issues and requests - OpenStreetMap Community Forum

P.S. Il semble que le message initial de ce fil de discussion ait été automatiquement traduit en anglais pour moi et je ne trouve aucun moyen de voir l’original dans l’interface mobile. Que se passe-t-il ? Évidemment, le problème n’est plus visible dans ce cas. Heureusement que j’ai capturé cette capture d’écran plus tôt !

Ceci est peut-être correct Udi, mais je pense que cette règle ne concerne que l’aperçu. Certains de ces éléments pourraient même être un bug dans le CSS revereser que nous utilisons.

@Osama, des réflexions à ce sujet ?

Je suis sûr que nous pouvons résoudre ce problème, en donnant la priorité à ce bug.

La règle complète (voir ligne #92) est :

.cooked,
.d-editor-preview {
  ul,
  ol {
     ...
  }
}

donc elle s’applique aussi à .cooked (et pas seulement à la prévisualisation).

Cela pourrait être un bug dans le reverser, mais à l’avenir, les propriétés start et end sont la meilleure solution.

Udi

1 « J'aime »

Bien sûr, j’ai fusionné, faites-moi savoir comment ça fonctionne?

Super !

1 « J'aime »

Je suppose que le générateur de reverser n’est appliqué que lorsque la langue de l’interface utilisateur est définie sur hébreu/arabe/etc., ce qui n’est pas le cas ici. Le texte RTL peut apparaître dans le contenu même lorsque la langue de l’interface utilisateur est de gauche à droite.

Comme Udi l’a mentionné, il est souvent préférable d’utiliser -inline-start/end plutôt que -left/right dans les feuilles de style, et de ne pas utiliser un reverser sujet à erreur. Cela fonctionnerait correctement à la fois pour le RTL intégré (dans le contenu des publications) ainsi que pour le RTL de mise en page (en fonction de la langue de l’interface sélectionnée), avec une seule feuille de style. Vous devriez envisager de migrer vers cette approche et de supprimer rtlcss. Mais bien sûr, ce n’est pas obligatoire si aucun problème réel à résoudre n’existe.

1 « J'aime »

Oui, je suis d’accord, nous devrions absolument avoir une feuille de style CSS solide pour le contenu mixte, si vous trouvez d’autres exemples qui nécessitent des améliorations, une PR est totalement la bienvenue :hugs:

1 « J'aime »

@nat bonne idée d’ajouter la balise. Vous pourriez vouloir l’ajouter ici aussi : Wrong -> arrow direction in RTL text contexts (je ne peux pas l’éditer pour une raison quelconque). Je posterai des informations pertinentes dans ce fil de discussion dans une seconde (mais en bref, c’est toujours une tâche beaucoup plus importante qu’elle ne devrait l’être, et ce que j’ai écrit dans le premier message est toujours correct).

1 « J'aime »

J’ai un peu joué avec cet artefact d’IA pour en apprendre davantage sur ce genre de choses :

https://meta.discourse.org/discourse-ai/ai-bot/artifacts/248/2

Il semble qu’il y ait une longue liste de changements et de modèles que nous devrions apporter pour être plus adaptés à la droite (RTL).

C’est un sujet intéressant à démêler et à enseigner aux gens. Les aspects liés aux bordures sont également très intéressants.

1 « J'aime »

Ravi que cela vous intéresse ! Moi aussi :slight_smile:

Je mentionnerai que, à ma connaissance, -top et -bottom conviennent. Il est extrêmement rare que -block-start et -block-end ne soient pas mappés respectivement à ceux-ci, cela ne devrait se produire que lors de l’utilisation de la disposition de haut en bas. Je n’ai personnellement aucune expérience de telles dispositions, et je pense que l’ensemble du site Web devrait probablement être repensé pour les accueillir, de sorte que ces simples ajustements CSS ne suffiraient pas. Mais, à tout prendre, je pourrais avoir tort, ne vous fiez pas à ma parole !

Edit : https://stackoverflow.com/questions/510068/how-do-i-make-text-run-top-to-bottom-in-css#53576895

1 « J'aime »

Les questions auxquelles je pense ici sont :

  • Est-il possible d’amener notre CSS à un état où l’outil rtlcss n’aurait plus besoin de s’exécuter ?
  • Cela en vaut-il la peine ?
  • Existe-t-il un état intermédiaire sain ?

Fait amusant, cette page démontre un autre problème courant avec les directions mixtes - le défilement dans le mauvais sens :

Malheureusement, je n’ai jamais examiné cela, donc je ne peux pas vous dire ce qui en est la cause et comment l’éviter.

1 « J'aime »

Est-il possible - absolument, mais cela pourrait nécessiter quelques ajustements en HTML pour coopérer avec le CSS (je pourrai donner des exemples plus tard).

État intermédiaire sain - Je m’attendrais à ce que si vous ne changez que certaines choses en -inline-start, rtlcss les ignore, mais continue de convertir -left. Cela signifie que vous pouvez progressivement passer de plus en plus de choses jusqu’à ce que rtlcss ne change plus rien. À ce stade, rtlcss peut être retiré.

Est-ce que ça en vaut la peine - aucune idée. Considérez si cela rendrait Discourse plus stable en RTL, et si ce serait plus facile à maintenir à long terme. Je ne sais vraiment pas.

Cela en vaut vraiment la peine - peut-être même nécessaire - pour le CSS appliqué au contenu généré par l’utilisateur qui peut aller dans les deux sens (généralement avec dir="auto").

De plus, bien que je ne puisse pas trouver d’exemple tout de suite, parfois vous voulez vraiment définir explicitement la propriété left de quelque chose, quelle que soit la direction de la mise en page. Dans ces cas, rtlcss ferait la mauvaise chose, à moins que vous n’ayez fait des exceptions pour cela d’une manière ou d’une autre.

1 « J'aime »

Voici un exemple : Fix display of RTL tag and role values in element info table by jake-low · Pull Request #790 · OSMCha/osmcha-frontend · GitHub

Les éléments <span> supplémentaires à l’intérieur des éléments <td> sont nécessaires pour que le tableau s’affiche dans la mise en page souhaitée. Dans un contexte RTL, le pseudo-élément ::before se trouve à droite, donc si le td lui-même était RTL, le signe = séparant la clé et la valeur se retrouverait à la toute fin (côté droit) de la ligne du tableau.

En gros, parfois, il faut imbriquer un élément supplémentaire pour lui donner une direction distincte de son parent. Mais cela peut être une bonne chose selon votre point de vue.

2 « J'aime »

Je ne pense pas que cela vaille la peine de faire tous les efforts nécessaires pour mettre à jour notre CSS dans le cœur, les plugins et les thèmes juste pour supprimer notre dépendance à rtlcss. Une étape intermédiaire saine pourrait consister à utiliser du CSS agnostique à la direction pour les zones contenant du contenu généré par l’utilisateur, telles que les publications et les biographies, et pour tout le reste, rtlcss fera l’affaire.

3 « J'aime »

Ce sujet a été automatiquement fermé après 14 heures. Les nouvelles réponses ne sont plus autorisées.