Merci pour les idées et retours les gars
Le facepalm du jour, j'ai passé pas mal de temps à ne pas comprendre pourquoi le radio button disant ノ dans le groupe 'camera' n'était pas sélectionnable. Le code ressemble à ça :
Avec le callback utilisé ainsi sur le radio créé :
function addRadio(name: string, labelName: string, checked: boolean, cb: () => void) {
const span = addSpan();
const radio = span.appendChild(document.createElement('input'));
const label = span.appendChild(document.createElement('label'));
const id = `radio-${labelName}`;
label.textContent = labelName;
label.setAttribute('for', id);
radio.type = 'radio';
radio.id = id;
radio.name = name;
radio.checked = checked;
if (cb) {
radio.onclick = cb;
}
}
Juste, pour une raison inconnue et absolument pas visible dans le DOM, impossible de cliquer sur ce bouton (même en allant forcer l'attribut checked via l'inspecteur). En dupliquant les boutons je me suis aperçu que seul l'assignement à "true" fonctionnait.
Au lieu de m'énerver une fois de plus (là vraiment ma santé mentale est à la limite inférieure), j'ai dit "bon c'est pas *si critique que ça*, parce que le bouton ne se sélectionne pas mais le callback est appelé, au pire je dirai aux autres membres que c'est de la merde et laisserai à quelqu'un que ça intéresse le loisir de déboguer. Et j'ai SUPER BIEN FAIT, bordel. Parce que la cause c'est quoi ? Ben simplement que mon callback affecte mais aussi retourne false, ce qui se retrouve comme valeur de retour du onclick, qui du coup empêche l'événement de se produire (par spec, quand on retourne false). Bref pour une fois j'ai super bien géré, mais d'habitude y a de quoi enrager, parce que RIEN n'a de comportement logique, chaque truc aussi simple que possible a des effets de bord incroyables. Vraiment impossible de tenir un schedule ces derniers mois. Parfois ça va comme je veux et je m'emmerde (parce que je multiplie toujours mes estimations par 4, et je prends dans ces estimations que toutes les merdes possiblement imaginables arriveront), mais le plus souvent ça prend encore plus de temps que prévu. Je vous laisse imaginer la frustration. Je peux dire officiellement que je code bien plus vite en assembleur (je suis à plus d'un mois pour mon projet perso et j'ai rien de plus qu'un sprite sur l'écran et un début de physique).