Aller au contenu

Poképédia subit actuellement quelques soucis techniques !
L'équipe est au courant des problèmes et fait le nécessaire pour les arranger le plus rapidement possible. Merci de votre compréhension !

Utilisateur:Programgames2/Test apprentissage

De Poképédia

Page de test — proposition de mise à jour du Module:Apprentissage

[modifier]

Le Module:Apprentissage rend les sept tableaux de capacités du wiki, sur 5 410 pages. Cette page compare, cas par cas, le module en service et une version proposée, déposée dans Module:Apprentissage/bac à sable.

Ce que la proposition ne fait pas :

  • elle ne demande de modifier aucune des 5 410 pages ;
  • elle ne demande aucune ligne de CSS ou de JavaScript supplémentaire ;
  • elle n'enlève aucun paramètre, aucun comportement, aucune fonction.

Comment lire cette page. Chaque cas montre d'abord le rendu actuel, puis le rendu proposé, et explique dessous ce que vous devez voir et pourquoi. Les sections A vérifient que rien ne casse ; B montre ce qui s'améliore tout seul ; C montre ce qui devient possible ; D couvre les cas limites.

Deux catégories de maintenance apparaissent en bas de cette page. C'est voulu : les cas C.4 et D.2 les déclenchent exprès pour montrer le problème et sa solution.

A. Rien ne casse

[modifier]

Les appels ci-dessous sont exactement ceux qu'écrivent déjà les pages du wiki. Les deux rendus doivent être identiques, à une exception annoncée en A.2.

A.1 — Par niveau, génération 9

[modifier]

Rendu actuel

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPEV
ChargeNormalPhysique40100 %35N.1
RugissementNormalStatut100 %40N.3
VampigrainePlanteStatut90 %10N.7
Fouet LianesPlantePhysique45100 %25N.9
Lance-SoleilPlanteSpécial120100 %10N.30

Rendu proposé

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPEV
5 capacités
ChargeNormalPhysique40100 %35N.1
RugissementNormalStatut100 %40N.3
VampigrainePlanteStatut90 %10N.7
Fouet LianesPlantePhysique45100 %25N.9
Lance-SoleilPlanteSpécial120100 %10N.30

Ce que vous devez voir. Deux tableaux identiques, à un détail près : le nombre de capacités s'affiche à droite du bouton.

Pourquoi ce détail est placé là. MediaWiki:Common.js échange le texte du bouton et son attribut title à chaque clic. Un compteur écrit dans le bouton disparaîtrait donc au premier clic. Il est écrit à côté. Cliquez deux fois pour le vérifier.

A.2 — Par niveau, génération 8 : Maîtrise et Capacité Plus

[modifier]

Rendu actuel

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPEB, DEPSLPA
ChargeNormalPhysique40EB, DEPS
30, 40, 50LPA
100 %35EB, DEPS
30LPA
N.1MaîtriseN.1
RugissementNormalStatut100 %40N.3
Fouet LianesPlantePhysique45100 %25N.7MaîtriseN.7

Rendu proposé

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPEB, DEPSLPA
3 capacités
ChargeNormalPhysique40EB, DEPS
30, 40, 50LPA
100 %35EB, DEPS
30LPA
N.1MaîtriseN.1
RugissementNormalStatut100 %40N.3
Fouet LianesPlantePhysique45100 %25N.7Capacité PlusN.7

Ce que vous devez voir. Rien de différent à l'œil.

La seule différence de toute la proposition est ici. L'icône de Capacité Plus porte aujourd'hui le texte alternatif « Maîtrise » — un copier-coller depuis la ligne du dessus. Invisible pour vous, mais un lecteur d'écran annonce « Maîtrise » là où il faudrait « Capacité Plus ». La version proposée corrige ce texte.

Au passage, une remarque hors périmètre. Cette icône pointe vers une page « Capacité Plus » qui n'existe pas : le lien est rouge, dans le module actuel comme dans la version proposée. Ce n'est pas corrigé ici, car cela relève d'une décision de contenu et non du module — mais cela mérite peut-être une page.

A.3 — Par niveau, génération 3 : les colonnes Concours

[modifier]

Rendu actuel

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocageRSERFVF
ChargeNormalPhysique3595 %35Robustesse♥♥♥♥N.1N.1N.1
Fouet LianesPlanteSpécial35100 %10Sang-froid♥♥♥♥N.7N.7N.7
UltralaserNormalPhysique15090 %5Sang-froid♥♥♥♥♥♥♥♥N.50N.50

Rendu proposé

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocageRSERFVF
3 capacités
ChargeNormalPhysique3595 %35Robustesse♥♥♥♥N.1N.1N.1
Fouet LianesPlanteSpécial35100 %10Sang-froid♥♥♥♥N.7N.7N.7
UltralaserNormalPhysique15090 %5Sang-froid♥♥♥♥♥♥♥♥N.50N.50

Ce que vous devez voir. Neuf colonnes des deux côtés, Type Concours, Charme et Blocage compris, et les trois colonnes de jeu (RS, E, RFVF). Le «  » d'Ultralaser en Rubis/Saphir est conservé.

Pourquoi ce cas est dans la liste. Les générations 3, 4 et 6 sont les seules à avoir des colonnes supplémentaires, et donc les plus faciles à casser lors d'une modification. Elles sont vérifiées explicitement.

A.4 — Tableaux vides

[modifier]

Rendu actuel

[modifier]
Capacité
NomTypeCatégoriePuissancePrécisionPP
Ce Pokémon n'apprend aucune capacité par montée en niveau lors de cette génération.
NuméroCapacitéTypeCatégoriePuissancePrécisionPP
Ce Pokémon n'apprend aucune capacité par capsule lors de cette génération.

Rendu proposé

[modifier]
Capacité
NomTypeCatégoriePuissancePrécisionPP
Ce Pokémon n'apprend aucune capacité par montée en niveau lors de cette génération.
NuméroCapacitéTypeCatégoriePuissancePrécisionPP
Ce Pokémon n'apprend aucune capacité par capsule lors de cette génération.

Ce que vous devez voir. Strictement rien de différent : même phrase, même tableau, même largeur.

Ce qui change quand même, dans le code source. Un tableau vide n'a ni lignes ni compteur : c'est donc le cas où l'on voit le mieux ce que la version proposée ajoute, et rien d'autre :

  • la balise <table> reçoit les classes
 tableau-apprentissage et apprentissage-usuel — voir B.3 ;
  • les en-têtes reçoivent scope="col", ce qui permet à un lecteur
 d'écran d'annoncer « Puissance : 40 » plutôt que « 40 » ;
  • un guillemet en trop est retiré (class="cellule-entête"").

A.5 — Par CT/CS, génération 6 : le sigle dépend du jeu

[modifier]

Rendu actuel

[modifier]
NuméroCapacitéTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocage
CT01Poing ÉclairType inconnuCatégorie inconnue????????????
CT06ToxikPoisonStatut90 %10Intelligence♥♥♥
CT70FlashNormalStatut100 %20Beauté♥♥♥
CS94Éclate-RocROSACombatPhysique40100 %15Robustesse♥♥♥♥

Rendu proposé

[modifier]
NuméroCapacitéTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocage
4 capacités
CT01Poing ÉclairType inconnuCatégorie inconnue????????????
CT06ToxikPoisonStatut90 %10Intelligence♥♥♥
CT70FlashNormalStatut100 %20Beauté♥♥♥
CS94Éclate-RocROSACombatPhysique40100 %15Robustesse♥♥♥♥

Ce que vous devez voir. Éclate-Roc annoncée en CS des deux côtés, avec l'exposant ROSA ; Flash en CT. Les autres en CT.

Pourquoi ce cas. La table qui décide du sigle CT/CS/DT est la partie la plus délicate du module : onze capacités, dont quatre dont le sigle change selon le jeu à l'intérieur d'une même génération. Elle est reprise à l'identique, sans une virgule de changement.

A.6 — Par DT, génération 9

[modifier]

Rendu actuel

[modifier]
NuméroCapacitéTypeCatégoriePuissancePrécisionPP
DT01Vive-AttaqueNormalPhysique40100 %30
DT02Draco-GriffeDragonPhysique80100 %15

Rendu proposé

[modifier]
NuméroCapacitéTypeCatégoriePuissancePrécisionPP
2 capacités
DT01Vive-AttaqueNormalPhysique40100 %30
DT02Draco-GriffeDragonPhysique80100 %15

Ce que vous devez voir. Sigle DT des deux côtés, et le numéro de disque toujours en lien.

Un ajout invisible. La colonne Numéro devient triable dans l'ordre numérique. Aujourd'hui le tri compare des textes : « DT10 » se range avant « DT2 ».

A.7 — Par reproduction, avec parents

[modifier]

Rendu actuel

[modifier]
CapacitéTypeCat.Puis.Préc.PPParents l'apprenant par niveauParents l'apprenant par reproduction
VampigrainePlanteStatut90 %10ChetiflorSaquedeneuBulbizarre
SoinNormalStatut100 %5Mystherbe

Rendu proposé

[modifier]
CapacitéTypeCat.Puis.Préc.PPParents l'apprenant par niveauParents l'apprenant par reproduction
2 capacités
VampigrainePlanteStatut90 %10ChetiflorSaquedeneuBulbizarre
SoinNormalStatut100 %5Mystherbe

Ce que vous devez voir. Les mêmes miniatures de parents, dans le même ordre, et le «  » de la seconde ligne quand aucun parent n'est donné.

Pourquoi ce cas. C'est la fonction qui appelle un second module (Module:Ressources/infosPokemon) et la plus coûteuse à rendre. Si quelque chose devait ralentir ou casser, ce serait ici.

A.8 — Par reproduction : jeu(), sup(), méthodes= et queulorior=

[modifier]

Rendu actuel

[modifier]
CapacitéTypeCat.Puis.Préc.PPType ConcoursCharmeBlocageParents l'apprenant par niveauParents l'apprenant par CT
VampigraineRSPlanteStatut90 %10Intelligence♥♥♥♥Chetiflor
SoinENormalStatut100 %20Intelligence♥♥Mystherbe
Grâce à sa capacité Gribouille, Queulorior est capable d'apprendre toutes ces capacités, qu'il peut également transmettre par reproduction.

Rendu proposé

[modifier]
CapacitéTypeCat.Puis.Préc.PPType ConcoursCharmeBlocageParents l'apprenant par niveauParents l'apprenant par CT
2 capacités
VampigraineRSPlanteStatut90 %10Intelligence♥♥♥♥Chetiflor
SoinENormalStatut100 %20Intelligence♥♥Mystherbe
Grâce à sa capacité Gribouille, Queulorior est capable d'apprendre toutes ces capacités, qu'il peut également transmettre par reproduction.

Ce que vous devez voir. Les exposants RS et E collés au nom de la capacité, les en-têtes « Parents l'apprenant par niveau / par CT », et la phrase sur Queulorior en bas du tableau.

Pourquoi ce cas. Ce sont les trois paramètres les moins utilisés du module, donc ceux qu'une réécriture oublie le plus facilement. Ils sont vérifiés ensemble.

A.9 — Par donneur : lieu, coût, unité de prix

[modifier]

Rendu actuel

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPType ConcoursCharmeLieuCoût
UltralaserNormalSpécial15090 %5Sang-froid♥♥ Kanto 48 000 P
ChargeNormalPhysique3595 %35Robustesse♥♥♥ Johto
SoinNormalStatut100 %10Intelligence Sinnoh 8 PCo

Rendu proposé

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPType ConcoursCharmeLieuCoût
3 capacités
UltralaserNormalSpécial15090 %5Sang-froid♥♥ Kanto 48 000 P
ChargeNormalPhysique3595 %35Robustesse♥♥♥ Johto
SoinNormalStatut100 %10Intelligence Sinnoh 8 PCo

Ce que vous devez voir. Trois lignes identiques. La deuxième n'a ni coût ni unité et affiche «  » : c'est le comportement actuel, conservé.

Un piège conservé. Quand l'unité contient un lien avec une barre verticale, le module doit recoller les morceaux que le découpage a séparés. Ce raccommodage est repris tel quel — la ligne Ultralaser le prouve.

A.10 — Par pré-évolution et par événement

[modifier]

Rendu actuel

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPÉvénement
MétéoresNormalSpécial60EB, DEPS
45, 60, 75LPA
20 Pokémon Day 2020
UltralaserNormalSpécial150EB, DEPS
100, 120, 150LPA
90 %EB, DEPS
90 %, 95 %LPA
5 Distribution

Rendu proposé

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPPré-évolution
2 capacités
Danse-LamesType inconnuCatégorie inconnue??????0001
SoinNormalStatut100 %50002
CapacitéTypeCatégoriePuissancePrécisionPPÉvénement
2 capacités
MétéoresNormalSpécial60EB, DEPS
45, 60, 75LPA
20 Pokémon Day 2020
UltralaserNormalSpécial150EB, DEPS
100, 120, 150LPA
90 %EB, DEPS
90 %, 95 %LPA
5 Distribution

Ce que vous devez voir. La miniature du Pokémon pour la pré-évolution, le texte brut pour l'événement, alignés comme aujourd'hui.

Note pour la relecture du code. Ces deux fonctions, plus la nouvelle « transfert » (C.1), partagent désormais le même code : elles ne diffèrent que par le titre de leur dernière colonne et par la phrase du tableau vide. Trois fonctions presque identiques deviennent une, ce qui réduit d'autant le risque qu'un correctif futur n'en corrige que deux sur trois.

B. Ce qui s'améliore sans toucher aux pages

[modifier]

B.1 — Les colonnes deviennent triables

[modifier]

Rendu actuel

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPEV
ChargeNormalPhysique40100 %35N.1
UltralaserNormalSpécial15090 %5N.50
Lance-SoleilPlanteSpécial120100 %10N.30
SoinNormalStatut100 %5N.20
VampigrainePlanteStatut90 %10N.7
Danse-LamesType inconnuCatégorie inconnue??????N.12

Rendu proposé

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPEV
6 capacités
ChargeNormalPhysique40100 %35N.1
UltralaserNormalSpécial15090 %5N.50
Lance-SoleilPlanteSpécial120100 %10N.30
SoinNormalStatut100 %5N.20
VampigrainePlanteStatut90 %10N.7
Danse-LamesType inconnuCatégorie inconnue??????N.12

À essayer : cliquez sur Type, puis sur Catégorie, puis sur Puissance, dans chacun des deux tableaux.

Ce que vous allez constater. Dans le tableau actuel, Type et Catégorie ne se trient pas du tout, et Puissance se trie dans le désordre. Dans le tableau proposé, les trois se trient correctement.

Pourquoi. Le tableau porte bien la classe sortable, mais Type et Catégorie ne contiennent que des images : le tri n'a aucun texte à comparer. Et Puissance est triée caractère par caractère, donc « 120 » se range avant « 40 ». La version proposée ajoute à chaque cellule une valeur de tri invisible, lue dans Module:Data/Données Capacités Génération 9. Les mentions «  » et « ?? » sont envoyées en fin de tri au lieu de se mêler aux nombres.

B.2 — Le tri du coût, chez le donneur

[modifier]

Rendu actuel

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocageLieuCoût
UltralaserNormalSpécial15090 %5Sang-froid♥♥♥♥♥♥♥♥ Kalos 48 000 P
ChargeNormalPhysique50100 %35Robustesse♥♥♥♥ Kanto 8 PCo
SoinNormalStatut100 %10Intelligence♥♥ Johto 1 500 P

Rendu proposé

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocageLieuCoût
3 capacités
UltralaserNormalSpécial15090 %5Sang-froid♥♥♥♥♥♥♥♥ Kalos 48 000 P
ChargeNormalPhysique50100 %35Robustesse♥♥♥♥ Kanto 8 PCo
SoinNormalStatut100 %10Intelligence♥♥ Johto 1 500 P

À essayer : triez la colonne Coût dans les deux tableaux.

Ce que vous allez constater. L'actuel range 8 après 48 000, parce qu'il compare « 8 » et « 4 » comme des lettres. Le proposé range 8, 1 500, 48 000.

B.3 — Le CSS mobile enfin branché

[modifier]

Rendu actuel

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocageRSERFVF
ChargeNormalPhysique3595 %35Robustesse♥♥♥♥N.1N.1N.1
Fouet LianesPlanteSpécial35100 %10Sang-froid♥♥♥♥N.7N.7N.7
Lance-SoleilPlanteSpécial120100 %10Sang-froid♥♥♥♥N.30N.30N.30

Rendu proposé

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocageRSERFVF
3 capacités
ChargeNormalPhysique3595 %35Robustesse♥♥♥♥N.1N.1N.1
Fouet LianesPlanteSpécial35100 %10Sang-froid♥♥♥♥N.7N.7N.7
Lance-SoleilPlanteSpécial120100 %10Sang-froid♥♥♥♥N.30N.30N.30

À essayer : réduisez la largeur de votre fenêtre en dessous de 1200 px, ou ouvrez cette page sur téléphone.

Ce que vous allez constater. Le tableau actuel reste un tableau large, qu'il faut faire défiler latéralement. Le tableau proposé réorganise ses cellules sur plusieurs rangs et tient dans la largeur.

Pourquoi c'est le point le plus important de cette proposition. MediaWiki:Gadget-tableauxFlexibles.css contient une centaine de lignes écrites spécialement pour ce module — elles nomment .tableau-apprentissage, .apprentissage-usuel, .apprentissage-niveau-2niveaux, .apprentissage-donneur. Le module ne pose aucune de ces classes. La seule qu'il pose, apprentissage-capsule, est placée sur une cellule d'en-tête, alors que le CSS l'attend sur le tableau : elle ne s'applique pas davantage.

Résultat : ce travail de mise en page ne s'applique nulle part sur les 5 410 pages. Sur cette page, 17 règles CSS sont concernées ; elles ne réorganisent aujourd'hui aucun des tableaux de gauche, et réorganisent les 27 tableaux de droite. La proposition ne réécrit pas ce CSS : elle se contente de poser les classes qu'il attend.

B.4 — Deux tableaux d'une même page ne se replient plus ensemble

[modifier]

Le problème, sur une page réelle

[modifier]

Ouvrez Raichu et repliez le tableau Par CT de la génération 8 de la forme normale : celui de la forme d'Alola se replie en même temps.

C'est le comportement de MediaWiki:Common.js : il pilote tous les tableaux qui portent le même nom, et le module nomme ses tableaux d'après la seule méthode et la génération. Sur un relevé de 60 pages tirées au sort, 13 pages — soit 21 % — ont au moins deux tableaux qui se pilotent ainsi l'un l'autre. Ce sont les Pokémon à formes multiples : Raichu, Ossatueur, Motisma, Morpeko…

Rendu proposé, avec un identifiant distinct

[modifier]
NuméroCapacitéTypeCatégoriePuissancePrécisionPP
2 capacités
CT01Vive-AttaqueNormalPhysique40100 %30
CT02Draco-GriffeDragonPhysique80100 %15
NuméroCapacitéTypeCatégoriePuissancePrécisionPP
2 capacités
CT01Vive-AttaqueNormalPhysique40100 %30
CT03UltralaserNormalSpécial15090 %5

À essayer : repliez le premier des deux tableaux ci-dessus. Le second reste ouvert.

Comment ça marche. Un nouveau paramètre facultatif identifiant=. Sans lui, le nom du tableau ne change pas d'un iota et le comportement reste celui d'aujourd'hui — les 5 410 pages ne sont pas concernées. Avec lui, chaque tableau a son propre bouton. Les espaces et les accents sont retirés automatiquement pour former un nom de classe valide.

C. Ce qui devient possible

[modifier]

Tout ce qui suit est éteint par défaut : aucune page existante ne change de rendu. Ces fonctions ne servent que si quelqu'un les emploie.

C.1 — « Par transfert » : une fonction, enfin

[modifier]

Ce que fait le module aujourd'hui

[modifier]

Écrire {{#invoke:Apprentissage|transfert|…}} affiche « Erreur de script : la fonction "transfert" n'existe pas ». Les pages qui ont une section « Par transfert » appellent donc la fonction « niveau ». Quand la section est vide, cela donne ceci :

Capacité
NomTypeCatégoriePuissancePrécisionPPType ConcoursCharme
Ce Pokémon n'apprend aucune capacité par montée en niveau lors de cette génération.

Rendu proposé

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocageProvenance
2 capacités
UltralaserNormalPhysique15090 %5Sang-froid♥♥♥♥♥♥♥♥ Pokémon Or et Argent
MimiqueVolStatut20Intelligence♥♥ Pokémon Cristal
CapacitéTypeCatégoriePuissancePrécisionPPType ConcoursCharmeProvenance
Ce Pokémon n'apprend aucune capacité par transfert lors de cette génération.

Ce que vous devez voir. Le tableau du haut annonce « n'apprend aucune capacité par montée en niveau » — dans une section intitulée « Par transfert ». C'est ce que lit un visiteur aujourd'hui.

Le tableau du bas annonce « par transfert », et la nouvelle colonne Provenance indique le jeu d'où vient la capacité.

Pourquoi ça compte. Le détournement fonctionne tant que la section n'est pas vide, mais il affiche une phrase fausse dès qu'elle l'est, et il expose au message d'erreur rouge à la moindre faute de frappe.

C.2 — Les notes de bas de tableau

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPÉvénement
3 capacités
Météores1NormalSpécial60EB, DEPS
45, 60, 75LPA
20 Pokémon Day 2020
UltralaserNormalSpécial150EB, DEPS
100, 120, 150LPA
90 %EB, DEPS
90 %, 95 %LPA
5 Distribution 2
ChargeNormalPhysique40EB, DEPS
30, 40, 50LPA
100 %35EB, DEPS
30LPA
Cadeau Mystère
1. Distribué uniquement au Japon.
2. Le Pokémon doit tenir un Ruban Classique.

Ce que vous devez voir. Deux petits renvois 1 et 2 dans le tableau, et les deux notes correspondantes sous le tableau. Les renvois sont cliquables.

À quoi ça sert. Beaucoup de capacités ont une condition d'obtention qui ne tient pas dans une cellule : une distribution limitée à une région, un objet à tenir, une restriction de jeu. Aujourd'hui, ces précisions sont soit écrites dans la cellule au risque de déformer le tableau, soit perdues. Le paramètre notes= leur donne une place, et un appel s'écrit simplement note(1) dans n'importe quel champ.

C.3 — Une colonne par jeu, pour les autres méthodes

[modifier]

Rendu actuel du module en service

[modifier]
NuméroCapacitéTypeCatégoriePuissancePrécisionPP
CT01Vive-AttaqueNormalPhysique40100 %30
CT02Draco-GriffeDragonPhysique80100 %15
CT03UltralaserNormalSpécial15090 %5

Rendu proposé, sans le paramètre : identique

[modifier]
NuméroCapacitéTypeCatégoriePuissancePrécisionPP
3 capacités
CT01Vive-AttaqueNormalPhysique40100 %30
CT02Draco-GriffeDragonPhysique80100 %15
CT03UltralaserNormalSpécial15090 %5

Rendu proposé, avec colonnes-jeux=oui

[modifier]
NuméroCapacitéTypeCatégoriePuissancePrécisionPPEBDEPS
3 capacités
CT01Vive-AttaqueNormalPhysique40100 %30
CT02Draco-GriffeDragonPhysique80100 %15
CT03UltralaserNormalSpécial15090 %5

Ce que vous devez voir. Les deux premiers tableaux sont identiques : sans le paramètre, rien ne bouge. Le troisième ajoute une colonne EB et une colonne DEPS : Ultralaser n'existe que dans Diamant Étincelant et Perle Scintillante, et cela se lit d'un coup d'œil.

Le problème que cela résout. Aujourd'hui, seule la méthode « par niveau » sait afficher une colonne par jeu. Pour les six autres — CT, DT, reproduction, donneur, pré-évolution, événement — le tableau ne peut rien dire de plus fin que la génération. En génération 8, Épée-Bouclier et Diamant/Perle sont même forcés dans une seule colonne, alors que leurs listes de CT diffèrent. La seule solution actuelle est d'écrire un exposant à la main dans une cellule de texte.

Aucun CSS à ajouter. Ces colonnes réutilisent la classe colonne-niveau, que MediaWiki:Gadget-tableauxFlexibles.css style déjà. Réduisez la fenêtre : elles se replient comme les colonnes de niveau du cas B.3.

C.4 — Colosseum et XD, sans catégorie de maintenance

[modifier]

Ce que fait le module aujourd'hui

[modifier]

Rendu proposé

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPType ConcoursCharmeBlocageJeuObtention
3 capacités
Ombre RushType inconnuCatégorie inconnue???????????? Colosseum Purification
Ombre VagueType inconnuCatégorie inconnue???????????? XD Capture
ChargeNormalPhysique3595 %35Robustesse♥♥♥♥ XD Capture

Ce que vous devez voir. Les deux affichent « ?? » pour les statistiques — c'est normal, ces capacités n'ont pas de fiche de données. Mais le premier verse cette page dans Catégorie:Page avec un nom de capacité incorrect, comme si le nom était une faute de frappe. Vérifiez en bas de page : la catégorie y est.

Pourquoi ça bloque un sujet entier. Les capacités Ombre de Pokémon Colosseum et Pokémon XD n'existent pas dans Module:Data/Données Capacités Génération 3. Documenter ces jeux avec les fonctions actuelles remplirait donc la catégorie de maintenance de centaines de pages parfaitement correctes — ce qui la rendrait inutilisable pour son vrai usage, repérer les fautes de frappe.

La fonction proposée affiche ces capacités en clair, avec le jeu et le mode d'obtention, sans catégoriser. Le jour où les données seront renseignées, les statistiques apparaîtront sans qu'il y ait rien à changer aux pages.

C.5 — Légende et couleur de type

[modifier]
Capacités apprises par montée en niveau (génération 9)
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPEV
4 capacités
ChargeNormalPhysique40100 %35N.1
VampigrainePlanteStatut90 %10N.7
Lance-SoleilPlanteSpécial120100 %10N.30
SoinNormalStatut100 %5N.20

Ce que vous devez voir. Un titre au-dessus du tableau, et une bordure colorée autour de chaque cellule de type.

Deux options, éteintes par défaut.

  • légende= ajoute un vrai <caption>. Utile quand
 un tableau est recopié ou lu hors du contexte de sa section, et pour les
 lecteurs d'écran. Il est visible et en gras, car c'est ainsi que
 MediaWiki:Common.css met les légendes en forme.
  • couleur-type=oui colore la cellule du type. Cela réutilise les
 classes de MediaWiki:Gadget-couleurs.css, qui existent déjà — aucune
 couleur n'est inventée.

C.6 — Une colonne par génération d'origine, comme Bulbapedia

[modifier]

Ce que Bulbapedia affiche, et pas nous

[modifier]

Sur Bulbapedia, un tableau « by transfer » ne met pas la provenance dans une colonne de texte : il met une colonne par génération antérieure, et coche celles où la capacité s'apprenait. Relevé sur 6 769 pages de son wiki :

Colonnes de génération remplies1234567total
Tableaux « by transfer »1 203848471213212209137 3 293

2 090 de ces tableaux — 63 % — en portent au moins deux, et jusqu'à sept. Chez nous, les 323 sections « Par transfert depuis une autre génération » n'écrivent aucune provenance du tout : elles passent une simple liste de noms à la fonction « niveau ».

Rendu proposé

[modifier]
CapacitéTypeCatégoriePuissancePrécisionPPIIIIIIVVVIVII
5 capacités
AéropiqueVolPhysique60EB, DEPS
45, 60, 75LPA
20
Danse PlumesVolStatut15
FeinteTénèbresPhysique6020
VampirismeInsectePhysique80EB, DEPS
60, 75, 90LPA
100 %10
MimiqueVolStatut20

Ce que vous devez voir. Six colonnes étroites, II à VII, chacune liée vers la sous-page de génération correspondante quand elle existe. Une coche ✔ là où la capacité s'apprenait, un tiret sinon. Le losange ✦ de Vampirisme signale une génération où elle ne s'obtenait que par événement ou capacité spéciale — c'est l'équivalent du fond rayé de Bulbapedia.

À essayer : cliquer sur l'en-tête d'une colonne de génération. Le tri regroupe les capacités transférables depuis cette génération-là. Une colonne de texte ne permettrait pas cela.

Comment ça s'écrit. Le champ après le nom est une liste : Aéropique / 3,4,5,6,7. Les chiffres romains sont acceptés (III, IV), et une étoile marque le cas « événement seulement » (2*).

Ce qui est automatique. Une génération que personne ne remplit n'a pas de colonne — même règle que les colonnes de jeu vides du cas D.3. Ici la colonne I n'apparaît pas, parce que Nostenfer n'existe pas en première génération. Le paramètre depuis=1 force l'affichage de toutes les colonnes si besoin, et pokémon= sert seulement à cette page de test : sur une vraie fiche, le module trouve le nom tout seul.

Pourquoi ça compte. Cette information existe, elle est vérifiable, et c'est aujourd'hui la seule chose que le tableau de transfert ne dit pas : un lecteur voit qu'une capacité s'obtient par transfert, mais pas depuis où.

Une réserve, dite franchement. Les largeurs mobiles du gadget s'arrêtent à trois colonnes étroites. Au-delà, sous 1200 px, les colonnes se rangent d'elles-mêmes sans se casser, mais sans s'aligner non plus. Cinq lignes dans MediaWiki:Gadget-tableauxFlexibles.css suffiraient — c'est la seule ligne de CSS que cette proposition demande, et elle est facultative :

.apprentissage-niveau-4niveaux .colonne-niveau { width: calc(25% - 2px); }
.apprentissage-niveau-5niveaux .colonne-niveau { width: calc(20% - 2px); }
.apprentissage-niveau-6niveaux .colonne-niveau { width: calc(100%/6 - 2px); }
.apprentissage-niveau-7niveaux .colonne-niveau { width: calc(100%/7 - 2px); }
.apprentissage-niveau-8niveaux .colonne-niveau { width: calc(12.5% - 2px); }

C.7 — Le bouton « Masquer » redevient lisible

[modifier]

Rendu actuel du module en service

[modifier]

Rendu proposé

[modifier]

Ce que vous devez voir. Le même bouton, en plus grand. Mesuré dans le navigateur sur cette page même :

Module en serviceProposition
Taille du texte du bouton11,2 px14 px (celle du tableau)
Police du boutonArial, imposée par le navigateurcelle de la page
Zone cliquable69 × 14 px83 × 26 px
Compteur « 2 capacités »11,2 px12,6 px

Pourquoi ça compte. Le font-size:80% s'applique à un texte déjà réduit : la cellule d'un tableau standard fait 14 px, et non 16. Le bouton tombait donc à 11,2 px. Sa zone cliquable, haute de 14 px, restait sous le minimum de 24 × 24 px du critère [https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html WCAG 2.2 « Target Size (Minimum) »] — ce qui se sent surtout au doigt, sur téléphone, là où ces tableaux sont justement le plus repliés.

Un détail au passage : un <button> n'hérite pas de la police de la page ; le navigateur lui impose Arial. Le libellé du bouton était donc, seul dans tout le tableau, dans une autre police.

D. Cas limites

[modifier]

D.1 — Génération inconnue

[modifier]

Module:Apprentissage : génération « 42 » inconnue.

Ce que vous devez voir. Un message court et lisible.

Ce que fait le module actuel dans le même cas. Il s'arrête sur une erreur Lua brute, du type « attempt to index field '?' (a nil value) », qui n'aide personne à comprendre qu'un paramètre est mal écrit.

Une catégorie à créer. Le message range la page dans « Page avec un paramètre d'apprentissage incorrect », sur le modèle des catégories existantes du wiki. Elle n'existe pas encore : elle apparaîtra en rouge jusqu'à ce que quelqu'un la crée, mais elle listera les pages dès maintenant. C'est la seule création demandée par cette proposition, et seulement pour la partie C.

D.2 — Nom de capacité inconnu

[modifier]

Ce que vous devez voir. Un lien rouge, des « ?? », et la page rangée dans Catégorie:Page avec un nom de capacité incorrect.

Comportement volontairement inchangé. Une faute de frappe doit rester visible et repérable. C'est précisément parce que cette catégorie est utile qu'il ne faut pas la remplir avec les capacités Ombre du cas C.4.

D.3 — Colonnes de jeu vides

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPSL
2 capacités
ChargeNormalPhysique40100 %35N.1
VampigrainePlanteStatut90 %10N.7

Ce que vous devez voir. Une seule colonne de jeu (SL). Les colonnes USUL et LGPE, sans aucune donnée, disparaissent — comportement actuel, conservé.

D.4 — masquer=oui

[modifier]
CapacitéNiveau
NomTypeCatégoriePuissancePrécisionPPEV
2 capacités
ChargeNormalPhysique40100 %35N.1
VampigrainePlanteStatut90 %10N.7

Ce que vous devez voir. Le tableau arrive replié, avec un bouton « [+] Afficher », et le compteur reste lisible même replié.

E. Pour décider

[modifier]

La proposition est découpée en trois lots indépendants. Un désaccord sur le troisième n'empêche pas d'adopter le premier.

LotContenuEffet sur les pages existantes
0Corrections internes : variables, texte alternatif de l'icône

Capacité Plus, guillemet en trop, message d'erreur lisible

Rendu strictement identique
1Classes du gadget (B.3), tri des colonnes (B.1, B.2), compteur,

taille du bouton (C.7), scope, identifiant= (B.4)

Aucune page à modifier ; le CSS et le tri s'appliquent tout seuls
2transfert et ses colonnes de génération (C.1, C.6),

obscur, notes=, colonnes-jeux=, légende=, couleur-type=

Éteint par défaut ; ne sert que si on l'emploie

Ce qui a été vérifié avant de vous proposer ceci. Les deux versions ont été exécutées côte à côte sur 18 appels représentatifs, dans la console Scribunto du wiki, et leurs sorties comparées : 17 rendus équivalents, 1 différence — celle du cas A.2 — et aucune erreur.

Ce qui reste à votre main.

  • créer la catégorie du cas D.1, si le lot 2 est retenu ;
  • dire si les cinq lignes de CSS du cas C.6 vous conviennent — le reste de la
 proposition n'en demande aucune ;
  • décider si couleur-type= doit rester une option ou devenir la
 norme ;
  • dire si le nom identifiant= vous convient, ou s'il vaut mieux
 forme=.

Toute remarque est bienvenue, y compris « ce lot ne nous intéresse pas » : les lots sont indépendants précisément pour ça.