# ISO/CEI 9995

ISO/CEI 9995 Technologies de l’information — Disposition des claviers conçus pour la bureautique (en anglais ISO/IEC 9995 Information technology — Keyboard layouts for text and office systems) est une norme de l’ISO définissant des concepts destinés à faciliter la création de normes et standards nationaux et industriels.
L’histoire de l’origine de cette norme fut étroitement liée à la situation particulière de l’informatique française dans les années 1970 et 1980, et aux efforts en vue de normaliser un clavier d’ordinateur performant pour la France – un processus qui pour être efficace, a dû rapidement s’inscrire dans une dimension internationale où la même absence de normes était à déplorer, avec toutes les conséquences négatives sur la productivité et l’ergonomie du poste de travail.
ISO/CEI 9995 est une norme en plusieurs parties, dont l’une (partie 8) ne concerne pas le clavier d’ordinateur. Un clavier concret n’est pas tenu de les implémenter toutes. Après la fusion de la partie 6 avec la partie 5, et l’adjonction d’ISO/CEI 9995-11 en 2015, on compte 10  parties.

## Histoire d’ISO/CEI 9995
### Des origines à 1994
#### Le coup d’envoi

La mise en place du projet de cette norme en 1985 sous la direction du P$^r$ Yves Neuville fut le fruit d’une vaste « opération pilote » menée par le même expert, qui répondait aux préconisations du P$^r$ Alain Souloumiac émises en 1983 à la demande du gouvernement pour combler le retard que la France avait accumulé en matière d’informatique par la faute d’une « stratégie américaine » d’adoption des standards industriels courants mais qui ne correspondaient pas aux attentes linguistiques des Français, en plus d’être incompatibles entre eux. La France prit l’initiative d’unifier les claviers en prévoyant des options pour le support de toutes les langues non-anglaises, dans une visée dépassant d’emblée les besoins nationaux pour commencer par la création d’une norme internationale.

#### L’ergonomie du poste de travail

À cette occasion, et avant que le nombre d’utilisateurs ne commence à décoller, le P$^r$ Neuville souhaitait non seulement mettre un terme à la diversité de l’agencement des touches de rédaction, de déplacement, de fonction, d’entrée et autres, et des caractères utilisés en informatique, source de pertes de productivité et d’une dégradation de l’expérience utilisateur, mais aussi faire adopter en France une disposition rationnelle des touches alphabétiques. Mais il se vit rapidement obligé d’en faire abstraction, au point que l’ergonomie de l’agencement alphanumérique fût exclu même du protocole d’entretien pour les 117 utilisateurs volontaires, pour moitié formés à la dactylographie, par ailleurs tous passionnés par cette opération pilote, mais refusant néanmoins de sacrifier temporairement une parcelle de leur productivité personnelle en faveur de l’amélioration durable de cette dernière, notamment pour tous leurs compatriotes encore inexpérimentés, et pour toutes les générations futures. L’ergonomie se restreignit dès lors à la disposition des touches de fonctions et des caractères informatiques.

#### L’opération pilote

Le rapport de mission du P$^r$ Yves Neuville fut remis au ministère du Redéploiement industriel et du commerce extérieur qui l’avait commandé, à l’Agence nationale pour l’amélioration des conditions de travail (ANACT) et à la Direction de la qualité et de la sécurité industrielles (DQSI) qui avaient cofinancé et participé à l’étude, et à l’AFNOR qui avait répondu de son côté dès janvier 1984 aux demandes du P$^r$ Alain Souloumiac en réunissant « un groupe de représentants des constructeurs et des utilisateurs » sous la direction de Bernard Vaucelle, « pour réviser la norme existante » (probablement la norme expérimentale E 55-060 rédigée en 1974) « et adapter le clavier français traditionnel aux possibilités et aux exigences des nouvelles technologies. » Cette réunion était tellement ouverte que de nombreux utilisateurs purent y participer, dans l’espoir de « trouver, grâce à la normalisation, une solution à leurs problèmes quotidiens. » Dans la foulée, un comité ad hoc, appelé Comité d’étude Clavier, rédigea une proposition de norme. Mais cette proposition ne correspondait « pas aux attentes exprimées », de sorte que les praticiens de la bureautique et de l’informatique consultés conseillèrent de nommer un expert « afin d’analyser les besoins réels auxquels doit répondre la norme », demande acceptée par le comité en octobre 1984.
C’est alors que l’AFNOR sollicita le concours de la DQSI et de l’ANACT, et les trois organismes décidèrent de conférer à cette étude le statut bien défini d’une expérience pilote, parce que « l’élaboration d’un projet de clavier de langue française […] concerne ‹ le patrimoine collectif de la nation ›». « Toutefois, compte tenu des liens nécessaires entre la normalisation française et la normalisation internationale, ce projet doit être conçu pour permettre des options en fonction des différentes langues utilisées. C’est notamment une des conditions posées pour que les constructeurs l’adoptent. L’accent a donc été mis sur la cohérence d’ensemble du projet de norme française avec, comme double contrainte, la prise en compte des besoins des utilisateurs et les possibilités d’extension au niveau international. »

#### Vers une norme internationale

En 1985, un groupe de travail de l’ISO sous la direction du P$^r$ Yves Neuville se réunit à Berlin pour élaborer un projet de norme internationale. La structure d’ensemble est le comité technique mixte ISO/CEI JTC 1 (Joint Technical Committee) créé par l’ISO et la Commission électrotechnique internationale (CEI) pour les technologies de l’information. Le sous-comité auquel ces travaux furent rattachés était le nº 18 (Traitement des documents et communications associées). « Les projets de normes internationales adoptés par le comité technique mixte sont soumis aux organismes nationaux pour approbation. Leur publication comme normes internationales requiert l'approbation de 75% au moins des comités membres votants. »
En 1994, soit près de dix ans après le début des travaux, cette norme fut adoptée sous la référence ISO/CEI 9995. Peu après (vers 1995), les parties de Windows qui sont en interaction avec les dispositions de clavier furent figées pour la rétrocompatibilité, et il n’est dès lors plus possible d’ajouter (directement dans Windows) de nouvelles fonctionnalités comme la génération de séquences par touche morte.

### De 1995 à nos jours

Après dix ans de réflexion et l’inauguration d’Unicode (1992), on pouvait partir du principe que les experts avaient fait le tour des idées. En réalité, rien n’indique que le dernier mot a été dit. De fait, la norme a dû être actualisée à plusieurs reprises. Une clause prévoit même un rythme de révision quinquennal. Des modifications majeures furent appliquées en 2002 (Alain LaBonté, rédacteur en chef de cette série de normes de 1988 à nos jours) puis en 2010 (Karl Pentzlin). Au plus tard depuis le tournant du millénaire le sous-comité est le nº 35 (Interfaces utilisateurs), et le groupe de travail au sein duquel les projets sont discutés, porte le nº 1. La référence actuelle de la structure est dès lors « ISO/CEI JTC 1, SC 35, GT 1 » (en anglais pur : « ISO/IEC JTC 1, SC 35, WG 1 »).

#### Perspectives

Aujourd’hui (2016) on ne saurait sainement demander aux éditeurs de systèmes d’exploitation, par le truchement de l’ISO/CEI, d’implémenter de nouvelles fonctionnalités que l’on avait eu tout le loisir de suggérer voire d’exiger (par le biais d’une norme nationale, comme ce fut fait par exemple au Brésil) quand cette partie de Windows était encore en développement.
D’autre part, la persistance des problèmes d’accessibilité notamment sur les claviers où les chiffres sont en AltGr comme le clavier vietnamien, alors qu’un certain nombre de ressources des systèmes d’exploitation restent toujours inutilisées par ISO/CEI 9995 (bascule Kana, modificatrices Oyayubi, combinaison bascule-modificatrice) ou méconnues des réviseurs (chaînage des touches mortes et émulation “compose”), et que la fonctionnalité de composition préconisée par le P$^r$ Yves Neuville a complètement disparu de la scène officielle, expliquent en grande partie la tendance quasi unanime à la non-implémentation de cette norme – et à l’échec dans le petit nombre (Canada, Suède, Allemagne) de pays où la norme a été utilisée dans son état du moment.
Le pays qui vit émerger l’idée de cette norme est resté quant à lui sans norme de clavier nationale pendant une autre trentaine d’années. Politiquement il est impossible à la France de normaliser son clavier sans implémenter ISO/CEI 9995, quel que soit le risque d’échec qui en découle. Le succès de l’action gouvernementale actuelle (2016) dépend ainsi du niveau de qualité auquel la norme internationale aura pu se hisser.

## ISO/CEI 9995-1 - Principes généraux pour la disposition de clavier

ISO/CEI 9995-1 fournit une description des claviers adaptés aux systèmes bureautiques avec identification des parties et définition des concepts de base utilisés tout au long de la série.

### Division physique en modules et zones

La conception modulaire du clavier est l’une des innovations du P$^r$ Neuville. Elle répond aux vœux des utilisateurs, majoritairement favorables à la séparation entre les touches directionnelles et le pavé numérique, et entre le module alphanumérique et les touches de fonctions. Elle permet aussi « une évolution séparée de chacun des modules, ce qui constitue un atout important pour que ce projet soit accepté au niveau international et rend possible la conception et la normalisation de claviers spécifiques mieux adaptés à certaines applications. En particulier pour l’adoption future d’un clavier alphanumérique rationnel dont les bases ont été définies par M. MARSAN. Pour les fabricants cette proposition conduit à une diminution du nombre des options et donc des coûts. »
Le principal but de cette rationalité commune apportée aux claviers était de mettre un terme à la grande diversité des solutions d’agencement proposées par les différents fabricants, source de confusion, de pertes de productivité, et de surcoûts en formation des personnels.
Le clavier est divisé en modules, qui sont eux-mêmes sous-divisées en zones :
* module alphanumérique : correspond au bloc composé des lettres, ponctuations et chiffres ainsi que des touches modificatrices et de commande encastrées à gauche et à droite. Appelé couramment “pavé alphanumérique”.
** zone alphanumérique : comprend les touches produisant des caractères et la barre d’espace, sauf la touche Tabulation et la touche Entrée (qui produisent des caractères au même titre que la barre d’espace mais qui ne sont pas comptées comme telles par la norme).
** zones de fonctions : se répartissent physiquement sur deux zones, une à gauche et une à droite, mais selon la norme ce sont deux zones de chaque côté, quatre au total, afin de pouvoir être de forme rectangulaire, plus large en bas, plus étroite en haut.
* module numérique : correspond au pavé numérique.
** zone numérique : les chiffres proprement dits et le séparateur décimal (point/virgule).
** zone de fonctions : les touches Entrée du pavé numérique, Verrouillage numérique, mais aussi les touches des opérateurs.
* module d’édition et de fonctions : tout le reste du clavier.
** zone des touches de curseur : le “pavé directionnel” composé des “touches fléchées”.
** zone de fonctions d’édition : les touches au-dessus du pavé directionnel ainsi que celles au-dessus et/ou à gauche du module alphanumérique.
Le module d’édition et de fonctions comprend toutes les parties du clavier qui n’appartiennent pas aux zones alphanumérique ou numérique. Les règles de référencement tolèrent une disposition des touches de fonction ailleurs qu’au-dessus, et en plus d’une rangée/colonne. Ainsi la norme couvre aussi les claviers AT.
Selon la norme, les zones de fonctions du module alphanumérique sont subdivisées en quatre zones numérotées ZA2 et ZA4 sur la gauche, ZA1 et ZA3 sur la droite. La zone alphanumérique quant à elle est la zone ZA0. Mais ces subdivisions ainsi que celles des autres modules ont peu d’importance en pratique.
La présence d’un module numérique n’est pas requise, et ce dernier peut aussi être placé à gauche du module alphanumérique.

### Grille de référence et numérotation des touches

La grille de référence permet d’identifier chaque touche par une combinaison unique d’une lettre pour la rangée, et d’une séquence de deux chiffres pour la colonne. La touche la plus en haut à gauche dans le module alphanumérique est ainsi la touche E00. L’avantage de cette numérotation est que sur la plupart des claviers, le numéro de touche dans la rangée E correspond au chiffre.
Sur les touches larges ou hautes, c’est le premier point d’intersection qui compte. Espace en Occident est ainsi typiquement la touche A03 car elle est censée débuter au niveau de la touche B3 ; Entrée est C13 si elle est haute et étroite, mais C12 si elle est large ; Retour arrière est E13 si elle est large, et E14 si elle est étroite.
* La numérotation de gauche à droite des colonnes du module alphanumérique débute à 00 mais si la grille est oblique, la colonne plus à gauche porte le numéro 99.
* Des colonnes contenant des touches d’édition ou de fonction placées au-delà d’un module numérique à droite sont numérotées à partir de 60, et en descendant depuis 80 si elles se trouvent à gauche du module alphanumérique.
* Des rangées au-dessus du module alphanumérique portent une lettre à partir de K, et celles en-dessous de la barre d’espace se voient attribuer les lettres Z et inférieures.
La grille peut être oblique pour s’adapter à l’agencement en quinconce des touches alphanumériques, ou droite pour les claviers en matrice et le module numérique.
Le nombre de rangées et de colonnes dans le module alphanumérique est libre. Les autres parties de la norme ne posent pas non plus de limite. Dans sa proposition d’agencement, le P$^r$ Yves Neuville s’était en effet vu contraint d’ajouter une colonne de touches sur la droite afin de pouvoir regrouper les caractères informatiques d’une manière rationnelle et transposable à tous les claviers nationaux tout en respectant les agencements établis. La seule entorse à cette latitude est l’agencement harmonisé à 48 touches défini dans la partie 2.

### Division logique en niveaux et groupes

Chaque touche, même en dehors du module alphanumérique, peut donner accès à plusieurs caractères ou fonctions, dont chacun est caractérisé par son appartenance à un groupe et à un niveau. Le groupe est hiérarchiquement supérieur au niveau.

#### Groupes

Le clavier peut contenir un nombre quelconque (non nul) de groupes. L’un d’entre eux est accessible par défaut, tandis que les autres nécessitent d’actionner un sélecteur de groupe. Par exemple, sur un clavier japonais, le second groupe est Kana, mais il préexistait à cette norme. Sur un clavier international pour les États-Unis, le second groupe est AltGr. Pareil pour tous les claviers qui utilisent les quatre niveaux. D’autres exemples de claviers à groupes sont les trois implémentations de cette norme : le clavier canadien multilingue standard (toujours en usage, bien que moins fréquent sous Windows, et seul clavier couramment disponible sur ordinateur Apple pour le français canadien), le clavier suédois (abandonné au profit du clavier finnois multilingue), et les claviers allemands T2 et T3.

#### Niveaux

Chaque touche peut comporter un, deux, ou trois niveaux. Les écritures bicamérales occupent les niveaux 1 (minuscules) et 2 (majuscules). Le niveau 3, s’il existe, est accessible par « une fonction supplémentaire ». Il est « inexistant dans les normes précédentes ». Les chiffres et surtout les ponctuations peuvent se trouver sur l’un quelconque des trois niveaux, bien que les premiers se rencontrent souvent au niveau 1.
    Il n’échappe à personne que cette norme acquiert ainsi une dimension paradoxale, vu qu’elle prend le contre-pied de près de la moitié de l’expérience utilisateur courante basée sur la conception de cette interface par les plus grands constructeurs et éditeurs, qu’elle met de ce fait en porte-à-faux. D’où parfois une certaine exaspération au vu du niveau 4 (sélecteur de niveau 2 + sélecteur de niveau 3) laissé entièrement vide pour remplir deux autres niveaux (dans le deuxième groupe). Or la combinaison de touches qui y donne accès est prévue comme sélecteur de groupe. De plus, les interférences d’AltGr avec des raccourcis en Contrôle + Alt conduisent à éviter aussi de trop investir le niveau 3.
    Certes, à l’encontre de l’esprit de la norme, ce paradoxe est résolu d’une certaine manière en considérant une seule et même touche tantôt comme un sélecteur de niveau 3 (sur les claviers qui utilisent ce niveau mais pas le niveau 4), tantôt comme un sélecteur de groupe (sur les claviers utilisant aussi le niveau 4).

### Gravure des touches

Toutes les touches sauf la barre d’espace doivent porter au minimum une inscription, soit un nom de fonction, un symbole selon ISO/CEI 9995-7, une majuscule, ou sinon plusieurs caractères disposés en colonnes et en lignes : groupe 1 à gauche, groupe 2 à droite, groupe 3 et suivants entre les deux.
Le caractère du niveau 3 peut être gravé :
* en bas à droite si la touche ne comporte pas plus d’un groupe, pour améliorer la lisibilité ;
* en bas de la colonne, de sorte que le caractère du niveau 1 se retrouve au milieu dans la colonne ;
* sur le devant de la touche, si la géométrie des touches le permet (exemple : le clavier canadien multilingue standard).
Pour les lettres bicamérales, seule la majuscule est représentée dans le groupe 1, tandis que dans le groupe 2, seule la minuscule est gravée sur la touche parce qu’elle prend moins de place et surtout qu’elle est toujours univoque, contrairement au Đ barré, majuscule du đ, au Ɖ africain, majuscule du ɖ, et au Ð, majuscule du ð qui est l’ed islandais. De plus, certaines lettres comme le s long ſ et la lettre latine lambda barré ƛ n’ont pas de majuscule, pour prendre deux exemples qui sont sur le clavier allemand T3.
Les modalités pratiques de la sélection du groupe et du niveau sont spécifiées dans la partie suivante de la norme.

## ISO/CEI 9995-2 - Le module alphanumérique

Sur un clavier de bureau conforme, ce module doit se situer entre le module d’édition ou le module numérique à droite s’ils sont présents, et une éventuelle zone de touches de fonctions en haut et/ou à gaucbe. Elle s’étend de la colonne 99 à la colonne 15.
    Ce sont des valeurs maximales.
   * La colonne 99 existe uniquement sur les claviers en quinconce, où elle constitue le bord gauche des rangées A et B. Sur les claviers en matrice (à grille droite) elle est absente.
   * La colonne 15 n’existe sur aucun clavier commercial. La norme prévoit la possibilité d’une rallonge avec deux touches à caractères informatiques entre Retour arrière et Entrée, et une touche Compose en-dessous d’Entrée, en plus d’une touche scindée de Majuscule droite comme la touche ABNT (pt)_C2 sur le clavier brésilien normalisé. Cet élargissement du clavier fut proposé en 1985 par le P$^r$ Yves Neuville, après mûre réflexion aux conséquences économiques et ergonomiques (l’extrémité gauche du bas d’Entrée ne reculerait pas), afin de pouvoir appliquer la logique de la modularité et du regroupement aussi à la disposition des caractères graphiques.

### Zone alphanumérique

Pour chaque rangée, la norme prescrit un nombre minimum de touches graphiques, dont le total est 45 plus la barre d’espace (mais sans la touche Tab qui insère le caractère de tabulation U+0009, classé au nombre des caractères de contrôle). Dans la suite, la norme devient plus précise en exigeant un répertoire de caractères minimal pour les claviers latins. Pour les claviers non-latins, une disposition latine complémentaire est définie dans la partie 3.

#### Agencement général

* Rangée E : 12 touches minimum au sein des 16 emplacements possibles qui vont de E00 à E15. (À ce stade, l’utilisation de la touche E00 est encore facultative.)
* Rangée D : 12 touches minimum sur D01 à D15.
* Rangée C : 11 touches minimum sur C01 à C15.
* Rangée B : 10 touches minimum sur B00 à B11.
* Rangée A : La barre d’espace. La barre d’espacement doit s’étirer au minimum sur les emplacements A03 à A07 si le clavier est destiné à écrire une langue utilisant l’espace comme séparateur de mots. (Cet égard pour les claviers japonais n’est toutefois pas inscrit dans la norme, à en juger d’après l’ébauche accessible sans royalties.)

#### Clavier harmonisé à 48 touches

Cette disposition de clavier définit :
* un cadre fixe, avec pour la 48e touche deux options possibles : B00 ou E13 ;
* un jeu de caractères : les 82 caractères invariants d’ISO/CEI 646.
Même en ajoutant aux 82 caractères invariants d’ISO/CEI 646 les caractères des 12 positions variantes pour atteindre le total de 94 caractères ISO/CEI 646, espace comprise, le clavier harmonisé d’ISO/CEI 9995-2 est à peine rempli à raison de deux caractères par touche.

## ISO/CEI 9995-3 - Le groupe secondaire commun

Cette version de cette partie de norme n’a pas encore été implémentée sauf dans la norme de clavier allemande DIN 2137:2012, qui à son tour est restée non implémentée fin décembre 2015. Une approximation de la variante milieu de gamme (T2) a été faite par son auteur en utilisant l’interface graphique du Microsoft Keyboard Layout Creator.

### Groupe latin complémentaire
## ISO/CEI 9995-4 - Le module numérique
## ISO/CEI 9995-5 - Le module directionnel et d’édition et les touches de fonction

Note : ISO/CEI 9995-6 a été fusionnée avec ISO/CEI 9995-5 et n’existe dès lors plus. Elle avait pour objet les touches de fonction.

## ISO/CEI 9995-7 - Les symboles de touches

ISO/CEI 9995-7 spécifie plusieurs symboles de clavier utilisés pour représenter des fonctions. Il existe une liste publiquement disponible dans une proposition pour coder ces symboles en tant que caractères Unicode (qui sont toujours en attente, en date de mars 2017).
Plusieurs symboles ont été déjà adoptés par Unicode et sont utilisés par la disposition de clavier CAN/CSA Z243.200-92, la « disposition canadienne multilingue standard » :
* U+21B9 leftwards arrow to bar over rightwards arrow to bar (↹), pour Tab
* U+21E7 upwards white arrow (⇧), pour Maj
* U+21EC upwards white arrow on pedestal with horizontal bar (⇬), pour Verr maj (au lieu de U+21E9 downwards white arrow (⇩) ou de U+21EA upwards white arrow from bar (⇪))
* U+21ED upwards white arrow on pedestal with vertical bar (⇭), pour Verr num
* U+21EE upwards white double arrow (⇮), pour Alt Gr
* U+21F1 north west arrow to corner (⇱), pour Début
* U+21F2 south east arrow to corner (⇲), pour Fin
* U+21F3 up down white arrow (⇳), pour Arrêt défil
* U+2318 place of interest sign (⌘), pour Cmd
* U+2324 up arrowhead between two horizontal bars (⌤), pour Inser
* U+2326 erase to the right (⌦), pour Suppr
* U+232B erase to the left (⌫), pour Arrière
* U+2387 alternative key symbol (⎇), pour Alt
* U+2388 helm symbol (⎈), pour Ctrl
* U+238B broken circle with northwest arrow (⎋), pour Échap
* U+2384 composition symbol (⎄), pour Compose
* U+2BA0 downwards triangle-headed arrow with long tip leftwards (⮠), pour Entrée
* U+2389 circled horizontal bar with notch (⎉), pour Pause
* U+2399 print screen symbol (⎙), pour Impr écran

## ISO/CEI 9995-11 - Les touches mortes

Publiée le 2 juin 2015 sous le titre Fonctionnalité des touches mortes et répertoires de caractères entrés par touches mortes, cette partie de la norme définit l’algorithme d’un nouvel éditeur de méthode d’entrée (ÉME) destiné à gérer les caractères entrés par touches mortes. Le terme d’éditeur (de méthode) d’entrée ne figure pas dans le texte parce que cette fonctionnalité dépasse le cadre d’ISO/CEI 9995, qui concerne uniquement les claviers et non les éditeurs d’entrée. L’algorithme est inspiré de la norme DIN 2137:2012 écrite par Karl Pentzlin pour les nouveaux claviers multilingues allemands. ISO/CEI 9995-11 précise le comportement des touches mortes tel qu’il a déjà été défini dans la partie 3 révisée (2010), pareillement écrite par Karl Pentzlin.

### Présentation générale

ISO/CEI 9995-11 représente un compromis entre tradition et innovation, en cherchant à rendre certaines habitudes existantes compatibles avec la nouvelle représentation des caractères diacrités initiée par Unicode.

#### Problème de départ

Pour ajouter des diacritiques au-dessus ou en-dessous des lettres, Unicode a encodé les diacritiques combinants, à saisir après la lettre. Pour les saisir avant, il existe des logiciels de clavier qui fonctionnent comme un ÉME et s’utilisent par exemple pour le lituanien accentué, seul cas en Europe (et au Vietnam) d’une écriture dont un certain nombre de caractères n’ont pas été encodés sous forme précomposée. Dans ce but, les accents sur le clavier lituanien sont en touche vive. Mais un normalisateur allemand souhaite que son nouveau clavier permette d’écrire le lituanien accentué (1 % de l’usage du lituanien) par touches mortes, et demande donc aux éditeurs d’ajouter un ÉME dans les suites bureautiques. C’est le sens de cette partie 11, qui précise d’emblée qu’elle concerne les traitements de texte.
Le problème part de l’encodage des caractères. Traditionnellement on utilise des caractères précomposés, c’est-à-dire représentés par un seul point de code attribué à un caractère. Nouvellement, une partie des lettres diacritées — toutes celles dont le diacritique flotte au-dessus ou s’accole en-dessous — sont représentées d’une nouvelle manière : caractère de base + diacritique combinant (+ diacritique combinant) (+ diacritique combinant) (…). Cette méthode a commencé à déployer ses avantages, car de par le monde on utilise bien plus de lettres diacritées qu’il n’existe de caractères précomposés (et beaucoup plus qu’on ne saurait raisonnablement encoder). Leur couverture désormais automatique évite les temps d’attente à l’encodage et à l’implémentation, et de fait, depuis 1999, Unicode a cessé d’encoder sous forme précomposée, des lettres ainsi couvertes. Malheureusement le bon affichage des diacritiques combinants était souvent compromis par des insuffisances dans les polices et les moteurs de rendu le temps que tous les programmes soient mis à jour. Mais au troisième millénaire ces problèmes n’existent plus que sous forme résiduelle dans les logiciels mal entretenus et les fontes obsolètes.
Le problème précis réside dans l’entrée de texte standard. Traditionnellement, les caractères composés les plus fréquents sont placés sur des touches, tandis que les autres sont entrés par touches mortes, surtout en écriture latine. Pour les caractères composés dont la seule représentation est sous forme décomposée, le premier mode d’entrée ne pose pas de difficultés, car chaque appui sur une touche peut insérer dans le texte jusqu’à quatre unités de code voire davantage, et la plupart des caractères combinés n’excèdent pas trois unités de code. Par touches mortes au contraire, les systèmes d’exploitation courants des ordinateurs utilisés pour l’entrée de texte ne peuvent nativement produire qu’une seule unité de code, et cela n’est pas près de changer.
Le Standard Unicode considère néanmoins comme évident d’adapter ce système pour qu’il puisse émettre aussi bien des caractères précomposés que des séquences de caractères combinants selon les besoins. C’est ce que peuvent faire les éditeurs d’entrée (ÉME) sous forme de logiciel de clavier, capables d’émuler toute disposition imaginable, qui peut dépasser largement les limites de ce que fournit le système d’exploitation. Mais dans la plupart des langues concernées, comme le bambara, les utilisateurs ont pris l’habitude d’écrire selon l’autre méthode mentionnée par Unicode, le mode de saisie comme-à-la-main où les diacritiques sont tapés à la suite de la lettre, grâce aux diacritiques combinants disposés sur le clavier. Du temps où l’affichage des diacritiques combinants était encore sous-optimal, les bambarophones ont gardé l’habitude d’utiliser uniquement ces derniers quand ils écrivent leur langue, dans un souci d’homogénéité, alors même que par ailleurs ils écrivent le français avec touche morte. D’autres langues comme l’igbo ont des séquences lettre (diacritée) + diacritique combinant allouées à des touches aux niveaux AltGr et Maj+AltGr.
Le lituanien constitue un cas particulier. 1 % de son écriture est accentuée. Les lettres portent alors trois types d’accents tonaux (aigu, grave, tilde avec fonction de circonflexe comme en grec polytonique), alors qu’un certain nombre d’entre elles sont déjà diacritées, comptées comme des lettres à part entière, et placées sur des touches. 35 des caractères doublement diacrités qui en résultent, n’ont pas été encodés dans Unicode parce que le délai était dépassé pendant lequel les demandes étaient acceptées pour la rétrocompatibilité.
Les problèmes de rendu et de traitement des données par les applications héritées amenaient alors une préférence pour les lettres préaccentuées afin de réduire le nombre de ratés, ce qui conduirait à entrer par touches mortes une partie des lettres accentuées, ainsi que l’envie qui en résulte, d’en faire de même pour toutes. Cela dit, aucun clavier lituanien sous Windows ne contient de touches mortes, et le seul des trois qui comporte tous les trois accents nécessaires, ne les a pas sur une touche morte, ni comme diacritiques combinants, mais comme diacritiques espaçants dont le grave et le tilde ASCII proviennent du QWERTY de base (voir les deux autres claviers). Il en ressort que dès lors qu’il est question d’accentuer le lituanien, soit dans 1 % des cas, le clavier Lituanien Standard est fait pour fonctionner avec un utilitaire de type ÉME mais qui ne fonctionne pas selon ISO/CEI 9995-11. La même source officielle affirme également que le lituanien est la seule langue européenne à devoir utiliser des diacritiques combinants pour une partie de sa représentation écrite. Pour le vietnamien aussi, toutes les lettres doublement diacritées existent sous forme précomposée : support Unicode de l’alphabet vietnamien.

#### La solution d’ISO/CEI 9995-11:2015

Selon cette norme, l’application doit prendre à son compte le traitement des touches mortes et ne doit plus consulter le pilote de disposition de clavier pour cela. Les caractères de touches mortes doivent tous être des diacritiques combinants, à la fois pour indiquer à l’application qu’il s’agit d’une touche morte, et en vue de leur traitement, avec la lettre de base, par l’algorithme de l’ÉME spécifié. Cet algorithme (présenté plus bas) utilise la fonction de composition canonique fournie par les systèmes d’exploitation, mais il laisse aussi une place au fonctionnement traditionnel des touches mortes pour les caractères composés avec diacritique couvrant, non couverts par la composition canonique. Cette solution est un mélange entre un fonctionnement simplifié de touche morte classique, et un éditeur (de méthode) d’entrée (ÉME) utilisant l’un des algorithmes de normalisation d’Unicode.
Ce nouvel ÉME a l’avantage d’uniformiser la saisie de toutes les lettres diacritées, dans l’idée d’améliorer l’expérience utilisateur. Le ‘ò’ de l’italien est saisi selon le même modèle que le ‘ɔ̀’ du bambara : Accent grave suivi de la lettre.
L’inconvénient d’une disposition de clavier conforme à ISO/CEI 9995-11:2015, c’est qu’elle ne peut fonctionner correctement sans ÉME, c’est-à-dire en l’absence d’un programme particulier ou en dehors d’applications la supportant. Car à supposer que le pilote de disposition contienne outre l’agencement, aussi un répertoire de touches mortes, le fonctionnement devient peu confortable dès lors que ce répertoire ne prévoit pas tous les cas possibles. En cas de séquence non supportée en effet, sur la plupart des ordinateurs le caractère de touche morte s’insère tel quel avant la lettre tapée à la suite, et si c’est un diacritique combinant comme spécifié, il se colle sur la lettre précédente où il risque d’être difficilement repérable.
Il aurait été possible d’éviter cette détérioration de l’expérience utilisateur, en spécifiant que l’ÉME doit contenir la liste des touches mortes de la disposition active, et qu’il doit remplacer chaque caractère (espaçant !) de touche morte par le diacritique combinant approprié avant de le mettre en attente pour la suite du traitement (voir l’algorithme détaillé). Cela aurait permis de faire fonctionner la disposition de clavier de manière correcte en mode autonome, tout en offrant ce certain petit plus quand le traitement de texte le prend en charge. Mais le fonctionnement des touches mortes sans ÉME reste hors du champ de la norme.
De plus, une disposition de clavier conforme à ISO/CEI 9995-11:2015 ne gère pas le « drapeau de touche morte », ce chiffre qui indique si le caractère résultant doit être inséré (‘0’) ou s’il est mort lui-même (‘1’). Ce qui en tient lieu, c’est la propriété de caractère « diacritique combinant ». La fonctionnalité compose devient ainsi à la fois plus difficile à implémenter et moins confortable à utiliser, car les caractères intermédiaires sont à choisir exclusivement parmi les (1 963) caractères combinants d’Unicode, et en cas de séquence non supportée, c’est un caractère avec un diacritique arbitraire qui s’insère dans le texte.
Or il existe déjà des solutions alternatives. Certaines applications traitant du texte effectuent déjà la normalisation Unicode dans le sens de la composition canonique quand l’utilisateur saisit des diacritiques combinants à la suite de la lettre à diacriter, aboutissant ainsi au même résultat qu’ISO/CEI 9995-11 et ce sans utiliser d’ÉME (la normalisaton Unicode n’étant pas comptée comme une édition d’entrée). Les diacritiques combinants sont soit entrés par touche vive (claviers pour le bambara), soit par touche morte (suivie d’espace, sur les claviers optimisés pour Unicode, où c’est l’espace insécable qui amène le diacritique espaçant).
D’autre part, des ÉME déjà disponibles comme les logiciels de clavier, permettent de rendre visible la file d’attente de touche morte qui sous la plupart des systèmes reste cachée, et est cachée aussi selon ISO/CEI 9995-11. L’utilisateur y peut saisir des diacritiques espaçants ou d’autres caractères conventionnels les représentant, avant ou après la lettre, et les séquences spécifiées sont remplacées dès leur complétion, par tout caractère ou séquence de caractères spécifiés.
Face aux solutions déjà existantes, ISO/CEI 9995-11 a peu de chances d’être implémentée, et elle n’a ainsi pas le potentiel d’inverser la tendance à la non-implémentation d’ISO/CEI 9995 en général qui caractérise l’histoire de cette norme depuis ses débuts.
Il faut souligner à ce propos que ce n’est pas l’AFNOR, chargée de rédaction de cette partie de norme pour le compte de l’ISO, qui a eu l’idée sous-jacente, mais que cette partie a été faite à la demande du DIN sur une idée de Karl Pentzlin.
La suite présente le contenu détaillé d’ISO/CEI 9995-11:2015.
Langues  : ISO/CEI 9995 est publiée en anglais et en français. Le texte qui a servi de base à la rédaction de cet article est la version anglaise.
Notes  : Quand dans la suite il sera question d’une « note », il faut y voir un texte entre deux alinéas, écrit en plus petit et précédé du mot «  NOTE  » placé dans un retrait de première ligne.

### Clause 1 - Domaine d’application

Définition d’une part, de la fonctionnalité des touches mortes, et d’autre part, des répertoires de caractères entrés par touches mortes. « Répertoires » ne s’entend pas de la liste qui se trouve dans le pilote de clavier, mais des listes non limitatives qui figurent dans la norme.
La clause 1 précise aussi que cette partie d’ISO/CEI 9995 est en premier lieu destinée aux traitements de texte et aux éditeurs de texte (« word-processing and text-processing applications »). Cela veut dire qu’elle ne s’occupe pas d’optimiser le clavier en soi en tant qu’outil de travail, mais d’établir une feuille de route pour les développeurs d’applications. Vu que l’idée qui la sous-tend est d’une part susceptible de toucher un public relativement restreint, et qu’elle est surtout un faux problème déjà suffisamment résolu, il est d’ailleurs peu probable que les éditeurs suivent les instructions de Karl Pentzlin.

### Clause 2 - Conformité

Une disposition de clavier est conforme à cette partie d’ISO/CEI 9995 si elle comporte au moins une touche morte, et si chaque touche morte fonctionne comme décrit dans la clause 5. Le contenu du tableau 1 et du tableau 2 doit correspondre seulement dans la mesure où les touches mortes en question se trouvent effectivement sur la disposition.
Vu que dans ces tableaux, la totalité des caractères de touche morte sont des diacritiques combinants, aucune disposition actuelle n’est conforme à ISO/CEI 9995-11:2015, car jusqu’à présent tous les développeurs de claviers se sont bien gardés d’utiliser les diacritiques combinants comme caractères de touche morte, où leur traitement normal conduit à un comportement désagréable pour l’utilisateur.

### Clause 3 - Références normatives

Cette partie fait référence bien sûr à la première partie de cette norme, mais aussi au jeu de caractères universel ISO/CEI 10646, autrement dit au standard Unicode.

### Clause 4 - Termes et définitions

Deux concepts viennent s’ajouter aux termes déjà définis dans ISO/CEI 9995-1.

#### Touche morte

Cette norme définit la touche morte comme une touche qui produit un caractère graphique spécifique sans déplacer le point d’insertion ; le caractère graphique produit étant fonction du groupe et du niveau qui sont actifs à ce moment.
Si le but est de faire le lien avec la pratique actuelle, on sait que dans un pilote de clavier, une touche morte correspond à un point de code qui, en fonction de la frappe suivante, renvoie à un autre point de code, sans insérer de caractère dans le document. Dans ISO/CEI 9995-11:2015 au contraire, on retrouve la définition des touches mortes sur les machines à écrire. La superposition des caractères pratiquée aux débuts de l’informatique est quant à elle abandonnée depuis longtemps, et elle n’avait d’ailleurs rien à voir avec les touches mortes, mais avec la touche « Retour arrière », « Backspace », littéralement un espace vers l’arrière (sans effacement).
La présente norme ajoute toutefois deux notes à cette entrée de vocabulaire. La première concerne les touches mortes qui ne sont pas mortes à tous les niveaux (et dans tous les groupes). On dira alors qu’une touche « agit comme touche morte » sous condition de niveau. C’est ce que d’autres appellent une « position de touche morte » (une position sur une touche où la touche est morte).
La deuxième note explique pourquoi ces touches sont dites « mortes », en renvoyant justement aux machines à écrire. Touches « qui ne causaient pas d’avancement horizontal du chariot comme faisaient les touches utilisées pour taper des lettres ordinaires. »

#### Caractère particulier (peculiar character)

Dans ISO/CEI 9995-11:2015, un caractère particulier est un caractère graphique figurant dans ISO/CEI 10646 et qui peut (donc) être généré par touche morte, où pour rester plus fidèle au texte, « qui peut être saisi comme une séquence d’un caractère combinant et d’un autre caractère, sans être le résultat d’une composition canonique de ces caractères (conformément à la forme de normalisation C d’Unicode). » Autrement dit, ce caractère spécial n’est pas décomposable en une lettre plus diacritique d’association selon Unicode. La normalisation en question désigne le fait qu’un texte est amené dans une forme normale. Unicode définit plusieurs formes dites normales, principalement deux : NFC comme composée qui fait appel aux lettres précomposées ; NFD comme décomposée utilisant les diacritiques combinants qui suivent les lettres simples.
ISO/CEI 9995-11:2015 concrétise ainsi l’avancée réalisée dans ISO/CEI 9995-3:2010 par rapport à ISO/CEI 9995-3:2002. En 2002, les utilisateurs n’avaient le droit d’entrer par touches mortes que les caractères qui sont effectivement décomposables dans Unicode, c’est-à-dire les lettres avec diacritique(s) au-dessus ou/et en-dessous. Lors de la révision d’ISO/CEI 9995-3 qu’il mena à bien avant de normaliser les claviers T2 et T3 pour son pays, et qui déboucha sur ISO/CEI 9995-3:2010, Karl Pentzlin introduisit la possibilité d’entrer par touches mortes notamment les lettres barrées. Que ces lettres ne soient pas décomposables, remonte à un choix fait aux débuts d’Unicode, à une époque où les moteurs d’affichage et les polices de caractères buguaient sur les diacritiques couvrants (ce qui arrive toujours parfois).

### Clause 5 - Fonctionnalité des touches mortes, et rapport aux caractères combinants (ISO/CEI 10646)

Cette clause débute par un rappel du fonctionnement obsolète des touches mortes déjà évoqué et discuté plus haut. En voici la traduction :
« L’appui sur une touche morte sélectionne un caractère graphique, qui par le fait que la position active ne change pas, partage sa position avec le caractère graphique entré à la suite. Le résultat ressemble d’habitude à une superposition du caractère graphique entré par la touche morte et celui entré par les touches suivantes. Si l’on entre des séquences de touches mortes, le résultat peut être une superposition de plus de deux caractères graphiques. »
La norme poursuit [traduction de l’anglais] : « Les clauses 5.2 et 5.3 définissent des caractères représentant de tels résultats où une superposition physique n’est pas appropriée […]. » Voir plus bas une reconstitution de ces tableaux.
Après avoir rappelé que les touches mortes en question sont associées à des caractères combinants (entre guillemets dans le texte) comme définis dans ISO/CEI 10646, c’est-à-dire selon Unicode, la norme précise dans une note que cela implique que les touches mortes sont habituellement associées à des marques diacritiques pour produire un caractère accentué en entrant la lettre de base à la suite.
    Or le modèle ISO/CEI 9995-11 et le modèle traditionnel ne s’impliquent ni dans un sens, ni dans l’autre, car ISO/CEI 9995-11 utilise des diacritiques combinants comme caractères de touches mortes, alors que traditionnellement on utilise des diacritiques espaçants (dit aussi “pleine chasse”) – à tel point d’ailleurs qu’Unicode a créé une série de clones espaçants de diacritiques combinants pour couvrir un certain nombre de touches mortes dont le diacritique n’existait pas sous forme espaçante. (On reverra ces clones plus bas.) Sous Windows en effet (soit dans 91 % des cas), les caractères de touche morte espaçants ont l’avantage de s’afficher de manière distincte toutes les fois que le caractère suivant n’est pas supporté par la touche morte. Dans ISO/CEI 9995-11 au contraire, les caractères de touche morte sont des marques diacritiques d’association (combinante). Sous Windows, sans le nouvel ÉME, en cas de séquence non supportée, le diacritique se place sur ce qui précède et peut ainsi devenir difficilement repérable. – On constate simplement qu’ISO/CEI 9995 affiche un attachement à la tradition tout en faisant foin de cette même tradition. Cela renforce l’air de fausseté qui apparaît à d’autres endroits.

#### Clause 5.1 - Traitement des touches mortes dans un environnement utilisant ISO/CEI 10646

Le contenu de cette clause est la description, en langage naturel, de l’algorithme qui régit le fonctionnement des touches mortes selon ISO/CEI 9995-11. C’est l’algorithme de l’ÉME défini par cette norme.
Une première note rappelle qu’une des caractéristiques d’ISO/CEI 10646, donc d’Unicode, comparée à des normes plus anciennes comme ISO/CEI 6937, est de représenter les caractères composés principalement à l’aide de diacritiques combinants, qui dans le flux du texte viennent après la lettre, si bien qu’à la saisie sans ÉME, l’ordre traditionnel instauré par les touches mortes est inversé.
    On sait que l’avantage des diacritiques combinants est de permettre de faire exploser le nombre de caractères supportés sans gonfler le nombre de points de code. La double question : Pourquoi avoir encodé des caractères précomposés, et pourquoi continuer d’utiliser des touches mortes ? trouve sa réponse dans le besoin de rétrocompatibilité (données héritées, logiciels hérités, habitudes héritées). Dès lors, les claviers doivent pouvoir gérer les deux formes de représentation, y compris au sein d’une seule et même langue comme le lituanien qui utilise aussi bien des caractères précomposés que des diacritiques combinants. C’est là qu’ISO/CEI 9995-11:2015 propose sa solution.

##### Algorithme sommaire

Les caractères des touches mortes actionnées par l’utilisateur sont mis en attente. Puis quand arrive la lettre, celle-ci est placée en première, et c’est l’algorithme de conversion Unicode NFD → NFC qui se charge de déterminer la lettre précomposée pour autant qu’elle existe dans Unicode. Ce qui reste de diacritiques combinants est sorti à la suite de la lettre (à charge pour le moteur de rendu d’afficher le tout sous la forme de la lettre diacritée souhaitée).
En parallèle, cet ÉME émule le fonctionnement traditionnel des touches mortes dans la mesure où il fait appel à des listes de conversions semblables à celles qui se trouvent dans les pilotes de dispositions de clavier, à ceci près qu’il manque le drapeau de touche morte, car celui-ci est représenté par la propriété ‘diacritique combinant’. Une chaîne de touches mortes ne peut se poursuivre que si le caractère intermédiaire est à son tour un diacritique combinant. De ces derniers, Unicode contient un nombre considérable (actuellement 1 963 toutes langues confondues).

##### Algorithme détaillé

La norme évite de préciser que l’algorithme qu’elle spécifie, sera implémenté dans un ÉME. La file d’attente (buffer) qu’il nécessite est un emplacement spécial et non la file d’attente du clavier. Mais la norme n’est pas claire sur ce point et se réfère simplement à l’« unité fonctionnelle du clavier » (Keyboard Functional Unit, KFU), explicitée entre parenthèses comme étant composée du matériel, des pilotes, etc. Ce passage a été repris tel quel de la norme allemande DIN 2137:2012.
Selon toute évidence, cette unité fonctionnelle n’existe pas comme le veut la norme. Les seules occurrences concernent des claviers physiques faisant partie d’un appareil plus complet décrit dans des brevets et qui correspondent à « hardware/firmware », mais non à « driver software/etc. », lesquels se situent dans la « logical functional unit », à moins que la norme vise un nouveau type de matériel incluant toute la chaîne et envoyant les caractères finis. Mais l’« etc. » laisse planer un doute sur la réalité ou du moins la faisabilité économique d’un tel équipement. Par conséquent, on utilise ici le terme de « file d’attente de l’ÉME » pour plus de clarté.
* Étape 1 - Quand un caractère combinant est entré par touche morte, le stocker dans la file d’attente de l’ÉME.
* Étape 2 - Si la file d’attente de l’ÉME n’est pas vide et qu’un caractère est saisi, procéder comme suit :
* Étape 2.1 - Si c’est un “Retour arrière” qui n’efface pas une sélection de groupe ou de niveau, vider la file d’attente de l’ÉME et cesser la mise en attente.
* Étape 2.2 - Sinon, si le nouveau caractère forme avec le précédent une séquence figurant dans les tableaux 1 ou 2 de cette norme ou dans un tableau additionnel propre à la définition de la disposition de clavier, remplacer le dernier caractère dans la file d’attente de l’ÉME par le caractère résultant.
* Étape 2.3 - Cas spécial : La norme précise que cette étape s’applique seulement si la disposition de clavier spécifie un « caractère d’application du diacritique combinant », c’est-à-dire un caractère qui, lorsqu’il est tapé après une touche morte, fait que le diacritique combinant de cette touche est inséré dans le texte et donc appliqué au caractère qui précède, comme une note explique. Une autre note recommande d’utiliser le point pour cela. – Si ce caractère est saisi, insérer tel quel le contenu de la file d’attente de l’ÉME, et cesser la mise en attente.
* Étape 2.4 - Sinon, ajouter à la file d’attente de l’ÉME le caractère nouvellement entré.
* Étape 3 - Si le dernier caractère dans la file d’attente de l’ÉME n’est plus un diacritique combinant, procéder comme suit  :
** étape 3.1 - Dans la file, monter le dernier caractère au début ;
** étape 3.2 - Appliquer à la séquence en attente la forme de normalisation Unicode C : composition canonique ;
** étape 3.3 - Insérer dans le texte la séquence résultante, et cesser la mise en attente.

#### Clause 5.2 - Combinaisons de touches mortes avec le caractère d’espacement
##### Prise en charge des caractères
###### Clones espaçants

ISO/CEI 9995-11 commence cette clause par énoncer la règle selon laquelle la touche morte suivie de la barre d’espace donne son diacritique sous forme espaçante, appelé son « clone espaçant ». Pour ce faire, la norme se réfère à un environnement ISO/CEI 10646, autrement dit où le jeu de caractères universel (UCS, Unicode) a été implémenté. Elle précise aussi que ce caractère s’insère seulement s’il a été défini dans ISO/CEI 10646.
Dans ce cas, il est possible qu’il existe deux diacritiques espaçants, dont l’un est appelé « caractère résultant alternatif ». Celui-ci doit être préféré :
* s’il n’est accessible par aucune touche directement ;
* ou si la touche morte appartient au groupe secondaire commun.
Ce résultat correspond au comportement hérité, maintenu parce qu’ISO/CEI 9995-11 utilise un ÉME permettant de saisir les diacritiques combinants avant la lettre de base. Pour le cas exceptionnel où l’utilisateur souhaite les saisir après, l’étape 2.3 de l’algorithme recommande de prévoir le point plutôt que l’espace. Autrement en effet, dans un environnement utilisant Unicode (ISO/CEI 10646), les utilisateurs préfèrent obtenir par l’espace les diacritiques combinants, tandis que les diacritiques espaçants s’obtiennent en faisant suivre la touche morte de l’espace insécable, voire mieux, de l’une des deux espaces insécables – donnant ainsi le choix dans les cas où deux formes existent.

###### Autres caractères

S’il n’existe pas de clone espaçant, la définition du clavier peut prévoir un autre caractère à la place.
Le tableau 1 montre que dans deux cas, la norme prescrit des caractères mathématiques  :
* le signe moins avec la touche morte ‘barré horizontalement’ (bref : ‘barré’) ;
* la barre de division avec la touche morte ‘barré obliquement’ (ou  : ‘slash’).

###### Diacritiques combinants

Si aucun caractère n’est prévu, le diacritique combinant (qui est le caractère de touche morte) s’insère tel quel précédé de l’espace selon la clause 5.1.
Depuis la version 4.1 du Standard Unicode (2005), de telles séquences sont fortement déconseillées à cause des conflits possibles avec le traitement des séquences d’espaces dans des contextes tels que XML, et c’est l’espace insécable U+00A0 qui est recommandée pour la représentation isolée des diacritiques combinants. Toutefois, jusqu’à la version 4.0 (2004), c’était effectivement l’espace U+0020.
L’espace U+0020 est aussi le caractère prévu pour la décomposition canonique de ces clones espaçants, mais le Standard Unicode précise encore que les implémenteurs doivent être prudents en utilisant ces décompositions-là à cause des complications qui peuvent surgir du remplacement d’un caractère espaçant par ESPACE + diacritique combinant.

##### Le jeu partiel latin multilingue

La norme précise que le tableau 1 liste tous les caractères combinants contenus dans une collection de caractères présentée tout d’abord par son sigle, qui peut se traduire en français par JPLM, explicité entre parenthèses : jeu partiel latin multilingue, en anglais : «  Multilingual Latin Subset (MLS)  » – « comme spécifié dans ISO/CEI 10646, ensemble avec les clones espaçants assortis ou caractères similaires si applicable. »
Ce jeu partiel ayant été défini et utilisé uniquement en Allemagne, il n’est pas connu en langue française, sauf sans doute dans la version française d’ISO/CEI 9995. (Presque toutes les normes ISO sont disponibles uniquement à la vente, à tel point qu’il arrive que les normalisateurs eux-mêmes ne peuvent y accéder au cours d’une réunion de groupe de travail. L’aperçu gratuit comprend notamment les titres et les définitions, mais le jeu partiel latin multilingue ne figure pas dans les définitions, pas plus que l’Unité fonctionnelle du clavier.)
Ce sous-ensemble latin d’ISO/CEI 10646 n’est autre que le répertoire d’ISO/CEI 9995-3, c’est-à-dire celui qui se trouve être couvert par le clavier allemand T3. Il a été défini par Karl Pentzlin pour rester dans la tradition qui veut que le jeu de caractères d’une norme de clavier figure au nombre des collections listées dans l’annexe A d’ISO/CEI 10646. Il reprend les 335 caractères du Jeu partiel européen multilingue 1 défini par le Comité Européen de Normalisation (CEN) en 1998 et utilisé comme référentiel par la version précédente de la norme (ISO/CEI 9995-3:2002), auxquels Karl Pentzlin ajoute 468 autres caractères dans le but déclaré de dépasser le cadre européen pour supporter aussi les langues africaines et les langues amérindiennes, mais seulement « la plupart » d’entre elles, parce que le clavier allemand T3 exclut le V tourné (Ʌ), le E ouvert (Ɛ), et d’autres encore. Pour cette raison, le nom de « Latin multilingue » qui lui a été donné lors de son admission en remplacement de « International multilingue » (en effet il ne contient ni grec ni cyrillique), a dû être suivi d’une note postérieure précisant qu’il ne permet pas d’écrire toutes les langues à écriture latine.
À propos du tiret double cadratin, il faut noter que son encodage fut postérieur à la définition du JPLM, auquel le DIN a d’ailleurs voulu le faire ajouter sans succès puisqu’il s’agit d’un jeu partiel « fermé ». À cette occasion l’on découvrit d’ailleurs que le JPLM était passé directement dans ISO/CEI 10646 sans faire partie d’aucun amendement, et que dans la réunion du groupe de travail qui approuva son admission, il n’était pas clair s’il était fermé ou ouvert.

##### Précautions d’emploi
###### Diacritiques doubles

Que « le tableau 1 liste tous les caractères combinants contenus dans la collection de caractères JPLM » est inexact car il manque le double accent circonflexe, et aussi le diacritique grec « tréma + accent aigu » (dialytica tonos) qui fait lui aussi partie du JPLM. Quant au premier, il figure dans le tableau 2. Le mot « double » a ici un sens différent de celui qu’il a dans « double accent aigu », où il signifie que le diacritique est dédoublé. Le double accent circonflexe chapeaute un digramme et est inséré après la première lettre. Il en va de même de la plupart des autres doubles diacritiques horizontaux.

###### Noms des caractères

Les traductions des noms de caractères proviennent de la Liste des noms, qui est le code source de la version française des tableaux de caractères Unicode. La partie 3 explique que le standard Unicode prescrit d’écrire les noms de caractères en capitales (c’est ainsi qu’ils figurent dans la Liste des noms et la Names List) ou, dans le texte courant, si possible en petites capitales. Dans ces tableaux, ISO/CEI 9995 utilise les minuscules parce qu’il ne s’agit pas d’encodage.
Cette raison invoquée dans la série ISO/CEI 9995 pour ne pas faire figurer les noms de caractères Unicode en (petites) capitales est spécieuse. Dépouiller ces noms de leur aspect conventionnel, c’est les déclasser et multiplier de ce fait les obstacles à l’introduction des caractères Unicode dans les habitudes des utilisateurs.
La norme ISO/CEI ne contient pas non plus les aperçus des caractères puisqu’elle n’est pas destinée à une large diffusion. On les a donc fait ajouter par le moyen d’entités HTML hexadécimales. Un cercle pointillé signifie que le caractère est un diacritique combinant, selon la convention graphique d’Unicode.
Le titre de tableau, du moins dans la version anglaise, utilise le sigle MLS bien qu’il reste de la place pour écrire le nom du jeu partiel en toutes lettres, et que le titre du tableau 2 s’étende sur toute la largeur.
Tableau 1 : Caractères diacritiques dans le Jeu partiel latin multilingue :
| Caractère combinant | Clone espaçant | Caractère alternatif |
| U+0300 ◌̀ diacritique accent grave | U+02CB ˋ lettre modificative accent grave | U+0060 ` accent grave |
| U+0301 ◌́ diacritique accent aigu | U+02CA ˊ lettre modificative accent aigu | U+00B4 ´ accent aigu |
| U+0302 ◌̂ diacritique accent circonflexe | U+02C6 ˆ lettre modificative accent circonflexe | U+005E ^ accent circonflexe |
| U+0303 ◌̃ diacritique tilde | U+02DC ˜ petit tilde | U+007E ~ tilde |
| U+0304 ◌̄ diacritique macron | U+02C9 ˉ lettre modificative macron | U+00AF ¯ macron |
| U+0306 ◌̆ diacritique brève | U+02D8 ˘ brève | |
| U+0307 ◌̇ diacritique point en chef | U+02D9 ˙ point en chef | |
| U+0308 ◌̈ diacritique tréma | U+00A8 ¨ tréma | |
| U+0309 ◌̉ diacritique crochet en chef | | |
| U+030A ◌̊ diacritique rond en chef | U+02DA ˚ rond en chef | |
| U+030B ◌̋ diacritique double accent aigu | U+02DD ˝ double accent aigu | |
| U+030C ◌̌ diacritique caron | U+02C7 ˇ caron | |
| U+030D ◌̍ diacritique ligne verticale en chef | U+02C8 ˈ lettre modificative ligne verticale | |
| U+030E ◌̎ diacritique double ligne verticale en chef | | |
| U+030F ◌̏ diacritique double accent grave | | |
| U+0310 ◌̐ diacritique tchandrabindou | | |
| U+0311 ◌̑ diacritique brève renversée | | |
| U+0313 ◌̓ diacritique virgule en chef | U+02BC ʼ lettre modificative apostrophe | |
| U+0315 ◌̕ diacritique virgule en chef à droite | | |
| U+031B ◌̛ diacritique cornu | | |
| U+0323 ◌̣ diacritique point souscrit | | |
| U+0324 ◌̤ diacritique tréma souscrit | | |
| U+0325 ◌̥ diacritique rond souscrit | | |
| U+0326 ◌̦ diacritique virgule souscrite | | |
| U+0327 ◌̧ diacritique cédille | U+00B8 ¸ cédille | |
| U+0328 ◌̨ diacritique ogonek | U+02DB ˛ ogonek | |
| U+0329 ◌̩ diacritique ligne verticale souscrite | U+02CC ˌ lettre modificative ligne verticale basse | |
| U+032D ◌̭ diacritique accent circonflexe souscrit | U+A788 ꞈ lettre modificative circonflexe bas | |
| U+032E ◌̮ diacritique brève souscrite | | |
| U+0331 ◌̱ diacritique macron souscrit | U+02CD ˍ lettre modificative macron bas | |
| U+0332 ◌̲ diacritique trait souscrit | | |
| U+0335 ◌̵ diacritique barre courte couvrante | U+2212 − signe moins | |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+2215 ∕ barre oblique de division | |
| U+0347 ◌͇ diacritique signe égal souscrit | | |
| U+0348 ◌͈ diacritique double ligne verticale souscrite | | |
| U+035C ◌͜ diacritique double brève souscrite | | |
| U+035D ◌͝ diacritique double brève | | |
| U+035E ◌͞ diacritique double macron | | |
| U+0360 ◌͠ diacritique double tilde | | |
| U+0361 ◌͡ diacritique double brève renversée | | |

#### Clause 5.2 - Combinaisons de touches mortes avec d’autres caractères, produisant des caractères spéciaux

Le tableau 2 liste des caractères particuliers qui sont entrés par une séquence d’une touche morte et d’un autre caractère, qu’il soit sur une touche morte — éventuellement la même — ou une touche vive. Le caractère contraignant de ce tableau est atténué par deux concessions :
* il n’est nullement limitatif ; la définition d’un clavier peut prévoir une liste de combinaisons additionnelles ;
* il n’est pas obligatoire pour autant que les touches mortes concernées sont absentes. Dans ce cas, la définition du clavier n’est pas tenue de prévoir de méthodes alternatives pour entrer les caractères particuliers figurant avec ces touches mortes.
Le titre complet du tableau 2 est : « Caractères particuliers qui peuvent être entrés en tant que combinaisons utilisant des marques diacritiques ».
Concernant les doubles diacritiques comme U+1DCD ◌᷍ DIACRITIQUE DOUBLE CIRCONFLEXE (contrairement au double accent aigu, utilisé en hongrois), il faut noter qu’ils surviennent dans des langues plus rares, par exemple en tagalog, ainsi qu’en phonétique et en translittération. La norme de clavier allemande ayant été écrite par un linguiste, il est normal de trouver ici ces caractères très accessibles, et comme l’utilisateur y dispose d’une vingtaine de touches mortes, les doubles diacritiques sont sans doute le meilleur résultat possible. Mais sur d’autres claviers avec moins de touches mortes il peut être préférable d’optimiser ces dernières en utilisant la double frappe pour obtenir d’autres diacritiques beaucoup plus courants, et de placer les doubles brève/circonflexe/macron/tilde dans le groupe Compose. Mais cette partie de la norme ne prévoit aucune autre option, contrairement à d’autres parties qui prévoient régulièrement plusieurs options.
Une entrée du tableau, dont le caractère résultant est U+20A3 ₣ SYMBOLE FRANC FRANÇAIS, appelle une remarque parce qu’elle sort du cadre attendu. Normalement le caractère résultant serait U+A798 Ꞙ LETTRE MAJUSCULE LATINE F BARRÉ. Mais en éoué le F barré appartient à l’ancienne orthographe et ne s’utilise plus actuellement, pendant qu’en dialectologie allemande seule la minuscule est utilisée, et c’est logiquement elle seule qui se trouve sur le clavier allemand T3 (mais pas dans le JPLM créé pour lui et auquel il se réfère).
Tableau 2 : Caractères particuliers entrés par touches mortes :
| Caractère saisi en premier | Caractère saisi en second | Caractère particulier résultant |
| U+0300 ◌̀ diacritique accent grave | U+0300 ◌̀ diacritique accent grave | U+030F ◌̏ diacritique double accent grave |
| U+0302 ◌̂ diacritique accent circonflexe | U+003D = signe égal à | U+2259 ≙ estimé |
| U+0302 ◌̂ diacritique accent circonflexe | U+0302 ◌̂ diacritique accent circonflexe | U+1DCD ◌᷍ diacritique double circonflexe |
| U+0303 ◌̃ diacritique tilde | U+0303 ◌̃ diacritique tilde | U+0360 ◌͠ diacritique double tilde |
| U+0304 ◌̄ diacritique macron | U+002D - trait d'union-signe moins | U+2E40 ⹀ trait d'union double |
| U+0304 ◌̄ diacritique macron | U+003D = signe égal à | U+2261 ≡ identique à |
| U+0304 ◌̄ diacritique macron | U+0304 ◌̄ diacritique macron | U+035E ◌͞ diacritique double macron |
| U+0306 ◌̆ diacritique brève | U+0306 ◌̆ diacritique brève | U+035D ◌͝ diacritique double brève |
| U+0307 ◌̇ diacritique point en chef | U+0306 ◌̆ diacritique brève | U+0310 ◌̐ diacritique tchandrabindou |
| U+030D ◌̍ diacritique ligne verticale en chef | U+030D ◌̍ diacritique ligne verticale en chef | U+030E ◌̎ diacritique double ligne verticale en chef |
| U+0311 ◌̑ diacritique brève renversée | U+0311 ◌̑ diacritique brève renversée | U+0361 ◌͡ diacritique double brève renversée |
| U+0313 ◌̓ diacritique virgule en chef | U+0313 ◌̓ diacritique virgule en chef | U+0315 ◌̕ diacritique virgule en chef à droite |
| U+0323 ◌̣ diacritique point souscrit | U+0323 ◌̣ diacritique point souscrit | U+0324 ◌̤ diacritique tréma souscrit |
| U+0329 ◌̩ diacritique ligne verticale souscrite | U+0329 ◌̩ diacritique ligne verticale souscrite | U+0348 ◌͈ diacritique double ligne verticale souscrite |
| U+032E ◌̮ diacritique brève souscrite | U+032E ◌̮ diacritique brève souscrite | U+035C ◌͜ diacritique double brève souscrite |
| U+0331 ◌̱ diacritique macron souscrit | U+003C < signe inférieur à | U+2264 ≤ inférieur ou égal à |
| U+0331 ◌̱ diacritique macron souscrit | U+003E > signe supérieur à | U+2265 ≥ supérieur ou égal à |
| U+0331 ◌̱ diacritique macron souscrit | U+0331 ◌̱ diacritique macron souscrit | U+0347 ◌͇ diacritique signe égal souscrit |
| U+0332 ◌̲ diacritique trait souscrit | U+0332 ◌̲ diacritique trait souscrit | U+035F ◌͟ diacritique double macron souscrit |
| U+0335 ◌̵ diacritique barre courte couvrante | U+002D - trait d'union-signe moins | U+2E3A ⸺ tiret double cadratin |
| U+0335 ◌̵ diacritique barre courte couvrante | U+003A : deux-points | U+00F7 ÷ signe division |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0062 b lettre minuscule latine b | U+0180 ƀ lettre minuscule latine b barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0062 b lettre minuscule latine b | U+0243 Ƀ lettre majuscule latine b barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0063 c lettre minuscule latine c | U+A793 ꞓ lettre minuscule latine c rayé |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0043 C lettre majuscule latine c | U+A792 Ꞓ lettre majuscule latine c rayé |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0064 d lettre minuscule latine d | U+0111 đ lettre minuscule latine d barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0044 D lettre majuscule latine d | U+0110 Đ lettre majuscule latine d barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0065 e lettre minuscule latine e | U+AB33 ꬳ lettre minuscule latine e barré horizontalement |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0066 f lettre minuscule latine f | U+A799 ꞙ lettre minuscule latine f barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0046 F lettre majuscule latine f | U+20A3 ₣ symbole franc français |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0067 g lettre minuscule latine g | U+01E5 ǥ lettre minuscule latine g barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0047 G lettre majuscule latine g | U+01E4 Ǥ lettre majuscule latine g barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0068 h lettre minuscule latine h | U+0127 ħ lettre minuscule latine h barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0048 H lettre majuscule latine h | U+0126 Ħ lettre majuscule latine h barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0069 i lettre minuscule latine i | U+0268 ɨ lettre minuscule latine i barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0049 I lettre majuscule latine i | U+0197 Ɨ lettre majuscule latine i barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+006A j lettre minuscule latine j | U+0249 ɉ lettre minuscule latine j barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+004A J lettre majuscule latine j | U+0248 Ɉ lettre majuscule latine j barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+006B k lettre minuscule latine k | U+A741 ꝁ lettre minuscule latine k à trait horizontal |
| U+0335 ◌̵ diacritique barre courte couvrante | U+004B K lettre majuscule latine k | U+A740 Ꝁ lettre majuscule latine k à trait horizontal |
| U+0335 ◌̵ diacritique barre courte couvrante | U+006C l lettre minuscule latine l | U+019A ƚ lettre minuscule latine l rayé |
| U+0335 ◌̵ diacritique barre courte couvrante | U+004C L lettre majuscule latine l | U+023D Ƚ lettre majuscule latine l rayé |
| U+0335 ◌̵ diacritique barre courte couvrante | U+006F o lettre minuscule latine o | U+0275 ɵ lettre minuscule latine o barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+004F O lettre majuscule latine o | U+019F Ɵ lettre majuscule latine o tilde médian |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0070 p lettre minuscule latine p | U+1D7D ᵽ lettre minuscule latine p barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0050 P lettre majuscule latine p | U+2C63 Ᵽ lettre majuscule latine p barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0072 r lettre minuscule latine r | U+024D ɍ lettre minuscule latine r barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0052 R lettre majuscule latine r | U+024C Ɍ lettre majuscule latine r barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0074 t lettre minuscule latine t | U+0167 ŧ lettre minuscule latine t barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0054 T lettre majuscule latine t | U+0166 Ŧ lettre majuscule latine t barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0075 u lettre minuscule latine u | U+0289 ʉ lettre minuscule latine u barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0055 U lettre majuscule latine u | U+0244 Ʉ lettre majuscule latine u barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0079 y lettre minuscule latine y | U+024F ɏ lettre minuscule latine y barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+0059 Y lettre majuscule latine y | U+024E Ɏ lettre majuscule latine y barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+007A z lettre minuscule latine z | U+01B6 ƶ lettre minuscule latine z barré |
| U+0335 ◌̵ diacritique barre courte couvrante | U+005A Z lettre majuscule latine z | U+01B5 Ƶ lettre majuscule latine z barré |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+0061 a lettre minuscule latine a | U+2C65 ⱥ lettre minuscule latine a barré |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+0041 A lettre majuscule latine a | U+023A Ⱥ lettre majuscule latine a barré |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+0063 c lettre minuscule latine c | U+023C ȼ lettre minuscule latine c barré |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+0043 C lettre majuscule latine c | U+023B Ȼ lettre majuscule latine c barré |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+0065 e lettre minuscule latine e | U+0247 ɇ lettre minuscule latine e barré |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+0045 E lettre majuscule latine e | U+0246 Ɇ lettre majuscule latine e barré |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+006C l lettre minuscule latine l | U+0142 ł lettre minuscule latine l barré |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+004C L lettre majuscule latine l | U+0141 Ł lettre majuscule latine l barré |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+006D m lettre minuscule latine m | U+20A5 ₥ symbole millième |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+006F o lettre minuscule latine o | U+00F8 ø lettre minuscule latine o barré obliquement |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+004F O lettre majuscule latine o | U+00D8 Ø lettre majuscule latine o barré obliquement |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+0074 t lettre minuscule latine t | U+2C66 ⱦ lettre minuscule latine t barré diagonalement |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+0054 T lettre majuscule latine t | U+023E Ⱦ lettre majuscule latine t barré diagonalement |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+003D = signe égal à | U+2260 ≠ pas égal à |
| U+0338 ◌̸ diacritique barre oblique longue couvrante | U+00B0 ° symbole degré | U+2300 ⌀ symbole diamètre |