Information technology — Keyboard interaction model — Machine-readable keyboard description

The goal of ISO/IEC 24757:2008 is to harmonize industry practices in matters of machine-readable keyboard descriptions (PCs, PDAs, various operating systems, etc.). It further aims to facilitate the production of interoperable drivers for the user and to better assist the user by offering a more precise mapping between the physical keyboard layout and geometrical configuration, and the logical interface available to the operating system and its applications. ISO/IEC 24757:2008 provides a formal description format that can not only fully describe the international keyboards standards, but also the capabilities of keyboards on the current and future marketplace and their functioning with corresponding operating systems. It describes possible interactions between keys of a keyboard and standardizes the keyboard description so that it is machine-readable while staying relatively easy to interpret by human beings. The keyboard description format is meant to be capable of describing existing capabilities of today's keyboard hardware and its associated software, plus foreseeable extensions. It relies on international standard format ISO SGML, in the form known as ISO RELAX NG, with an easy conversion to industry standard XML. Some additional functionality is covered, such as keyboards with programmable keys and keyboards with multiple key assignments such as telephone keypads. The keyboard definition format is primarily intended to be used by the operating system, and during its boot process (e.g. in the BIOS), but can also be used for other purposes, such as reporting from the hardware of a keyboard to help the operating system configuring the keyboard driver, or to present the keyboard on screen with a user-friendly picture. The keyboard definition format is described in four sections: a keyboard identification and general features section, including make and model, serial number, country or region and language to which the keyboard applies, engraving language identification, and distinctive features, such as relief, or presence of lights on keys. the hardware geometry layout, which indicates a largely known geometry layout, such as a 102-key PC keyboard. This section also gives physical information such as size of keys, and amount of pressure needed to activate keys. the keyboard layout, which gives the actual assignment of characters to each key. key combinations which gives combinations of keys, such as those of characters affected by dead keys. A number of existing keyboard definition formats are described, together with a mapping between these description formats and the format defined in ISO/IEC 24757:2008.

Technologies de l'information — Modèle d'interactions sur claviers — Description de clavier lisible à la machine

L'ISO/CEI 24757:2008 a pour but d'harmoniser les pratiques de l'industrie en matière de description machine des claviers (PC, assistants numériques, divers systèmes de fonctionnement, etc.) Elle vise finalement à faciliter la production de pilotes interopérables pour les utilisateurs et à permettre une meilleure assistance à l'utilisateur en offrant une correspondance plus précise entre le clavier matériel tel que gravé et géométriquement configuré, et l'interface conceptuelle dont dispose le système d'exploitation et ses applications. L'ISO/CEI 24757:2008 a pour but de procurer un format de description qui peut décrire non seulement entièrement les Normes internationales de clavier, mais aussi les possibilités des claviers du marché actuel et envisageable dans un avenir prévisible, de même que leur fonctionnement avec des systèmes d'exploitation correspondants. Elle décrit les interactions possibles entre les touches d'un clavier et normalise la description des claviers pour qu'elle soit lisible à la machine tout en restant interprétable par des humains de manière relativement facile. Le format de description de clavier est destiné à rendre possible la description des capacités des claviers matériels et des logiciels qui leur sont associés, plus des extensions prévisibles. Il est donc souhaitable de définir ce format dans un langage international extensible comme le langage SGML de l'ISO, dans la forme connue sous le nom de RELAX NG de l'ISO, aisément convertible au standard de l'industrie XML. Des fonctionnalités additionnelles sont couvertes, comme les claviers avec touches programmables et les claviers avec attributions multiples tels que les pavés téléphoniques. Le format de description de clavier est destiné au départ à l'usage des systèmes d'exploitation, et lors de son processus d'amorçage (par exemple dans le BIOS), mais il peut aussi être utilisé à d'autres fins, telles que la communication automatique du matériel au logiciel pour aider le système d'exploitation à configurer le pilote de clavier, ou pour présenter à l'écran le clavier à l'aide d'une image conviviale. Le format de description de clavier est décrit en 4 sections: une section sur l'identification du clavier et ses caractéristiques générales, incluant la marque et le modèle, le numéro de série, le pays ou la région et la langue auxquels le clavier s'applique, l'identification de la langue de gravure, et certaines particularités distinctives, comme le relief ou la présence de voyants lumineux sur les touches. la disposition géométrique matérielle, qui indique une disposition géométrique généralement reconnue telle que celle d'un clavier à 102 touches de PC. Cette section renseigne aussi sur les caractéristiques physiques du clavier, comme la taille des touches, et la force de pression requise pour activer les touches. la disposition de clavier, qui donne l'attribution exacte des caractères aux touches.. les combinaisons de touches, qui donnent les combinaisons telles que celles les caractères affectés les touches mortes. Quelques formats de définitions de claviers sont donnés, avec une correspondance entre ces formats et celui défini dans l'ISO/CEI 24757:2008.

General Information

Status
Published
Publication Date
29-Oct-2008
Current Stage
9093 - International Standard confirmed
Start Date
18-Dec-2024
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 24757:2008 - Information technology -- Keyboard interaction model -- Machine-readable keyboard description
English language
136 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO/IEC 24757:2008 - Technologies de l'information -- Modele d'interactions sur claviers -- Description de clavier lisible a la machine
French language
137 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 24757
First edition
2008-11-01
Information technology — Keyboard
interaction model — Machine-readable
keyboard description
Technologies de l'information — Modèle d'interactions sur claviers —
Description de clavier lisible à la machine

Reference number
©
ISO/IEC 2008
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but
shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In
downloading this file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat
accepts no liability in this area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation
parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In
the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the address given below.

©  ISO/IEC 2008
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means,
electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or
ISO's member body in the country of the requester.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2008 – All rights reserved

Contents Page
Foreword. iv
Introduction . v
1 Scope . 1
2 Conformance. 1
3 Normative references . 1
4 Terms and definitions. 1
5 Requirements . 2
5.1 Description of keys and keyboard layouts .2
5.2 States resulting from the interaction of function keys used for input. 2
5.3 Special keys . 4
5.4 Dead keys . 4
5.5 Stickiness and stable (explicit) locking or temporary (implicit) latching . 5
5.6 Supplementary keys (accessible or not by the computer software) ; Email, Fn function
keys, «Windows» keys, Sleep, On/Off). 6
5.7 Complex state change (mainly for accessibility purposes) . 6
5.8 Keyboard feedback. 6
5.9 Machine-readable keyboard description language . 6
Annex A (normative) Protocol for the exchange of information between the hardware keyboard
and the software . 8
Annex B (normative) Formal description language. 9
B.1 Introduction . 9
B.2 Overview . 9
B.3 Sections . 9
B.3.1 Dictionaries . 9
B.3.2 Meta-information. 10
B.3.3 Non-functional information. 10
B.3.4 Functional information. 10
B.4 A specification in RELAX NG language of the keyboard description format. 11
B.5 A description in EBNF language of the keyboard format. 14
B.5.1 Rules for BNF syntax. 14
B.5.2 Grammar for ISO/IEC 24757 Relax NG descriptions . 15
B.6 An example keyboard description . 16
B.7 Format in XML syntax. 17
Annex C (informative) Brief History of computer keyboards and their associated software. 24
C.1 The IBM keyboard. 24
C.2 The AT and PS/2 keyboard . 24
C.3 The USB keyboard. 25
Annex D (informative) Format Mapping . 26
D.1 General. 26
D.2 Unix/Linux X Window xkb keyboard format. 26
D.2.1 xkb description . 26
D.2.2 xkb example . 26
D.2.3 Example of keyboard description in ISO/IEC 24757 syntax . 54
D.2.4 Program to convert xkb descriptions to ISO/IEC 24757 format. 122
Bibliography . 136

© ISO/IEC 2008 – All rights reserved iii

Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees
established by the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international organizations, governmental
and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
ISO/IEC 24757 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 35, User interfaces.
iv © ISO/IEC 2008 – All rights reserved

Introduction
This International Standard is intended for those who design operating systems or software applications which
take account of the keyboard being used (including the complete presentation of the keyboard on screen for
documentation purposes). Its goal is to harmonize industry practices with regard to machine-readable
keyboard descriptions (PCs, PDAs, Linux, Windows, Apple, etc.). Its ultimate aim is to facilitate the production
of interoperable drivers for the user and to better assist the user by offering a more precise mapping between
the physical keyboard layout and geometrical configuration, and the logical interface available to the operating
system and its applications.
© ISO/IEC 2008 – All rights reserved v

INTERNATIONAL STANDARD ISO/IEC 24757:2008(E)

Information technology — Keyboard interaction model —
Machine-readable keyboard description
1 Scope
This International Standard provides a formal description format that can not only fully describe the
international keyboards standards, but also the capabilities of keyboards in the marketplace of today and the
foreseeable future and their functioning with corresponding operating systems. It describes possible
interactions between the keys of a keyboard and standardizes the keyboard description so that it is machine-
readable while staying relatively easy to interpret by human beings.
2 Conformance
The machine-readable description of a keyboard is in conformity with this International Standard if it meets the
requirements of 5.1 to 5.9.
3 Normative references
The following referenced documents are indispensable for the application of this document. For dated
references, only the edition cited applies. For undated references, the latest edition of the referenced
document (including any amendments) applies.
ISO 639-1, Codes for the representation of names of languages — Part 1: Alpha-2 code
ISO 639-2, Codes for the representation of names of languages — Part 2: Alpha-3 code
ISO/IEC 9995-1, Information technology — Keyboard layouts for text and office systems — Part 1: General
principles governing keyboard layouts
ISO/IEC 9995-2, Information technology — Keyboard layouts for text and office systems — Part 2:
Alphanumeric section
ISO/IEC 9995-3, Information technology — Keyboard layouts for text and office systems — Part 3:
Complementary layouts of the alphanumeric zone of the alphanumeric section
ISO/IEC 10646, Information technology — Universal Multiple-Octet Coded Character Set (UCS)
4 Terms and definitions
For the purposes of this document, the terms and definitions given in ISO/IEC 9995-1 and the following apply.
4.1
reference coordinates
identifier formed by one letter and two decimal digits, referring to the numbering grid according to which a key
can be positioned at the intersection of a row and a column of the keyboard, where rows are identified by
letters and columns by digits
© ISO/IEC 2008 – All rights reserved 1

5 Requirements
5.1 Description of keys and keyboard layouts
The keyboard is described for machines in this International Standard using the following properties:
• the logical coordinates of each key according to a grid numbering system established in
ISO/IEC 9995-1. These coordinates are called “reference coordinates”;
NOTE The reference coordinates of a keyboard may refer to a keyboard standard.
• the description of the size in millimeters (mm), shape and physical coordinates of each key of a
hardware keyboard, to allow reproducing the user’s keyboard precisely on a computer screen; a
binding is made with the reference coordinates;
• optionally, principal region or country and language codes applicable to this layout;
• actual labeling appearance;
• the logical division of each key of the keyboard into groups and levels within each group.
Within a group, at a given level, each character is described using five other properties:
• by a string of identifiers from ISO/IEC 10646, consisting of the letter "U" followed by 8 or 4 to 6
hexadecimal digits; if the character is a composed or combined character, identifiers of the individual
characters making up the resulting character are given with the sequence that allows this
composition;
• optionally, by its character name in a given natural language, identified according to ISO 639-1 code
or ISO 639-2 terminology code;
• optionally, by one or many "scan codes" (which may vary depending on the keyboard state, on the
hardware in use, etc.);
• in case a key position makes a key become a dead key, a description of user-required combinations,
with resulting character or characters;
• optionally, a tag to identify characters whose glyph engraved on the key top is different from its
internal representation (e.g., U00A6 broken vertical bar vs. U007C solid vertical bar).
NOTE The description of required combinations does not preclude the keyboard drivers to generate other characters
if these combinations are already defined. The description mentioned here makes sure that what the end-user needs is
taken care of, regardless of previous definitions.
This description includes the interaction of keys between them to produce results.
The following clause describes the different states of a keyboard necessary to the input of characters and
taken into account in this International Standard.
5.2 States resulting from the interaction of function keys used for input
Hitting one of the following function keys determines a state of the keyboard that produces the desired
character. This clause standardizes the conventional states produced by the interaction of these keys with
alphanumeric keys.
• Level 2 Select (also called «Shift ): per se, this key allows input of level 2 characters in the
active group.
2 © ISO/IEC 2008 – All rights reserved

• Level 3 Select (also called « AltGr »): per se, this key allows input of level 3 characters in the
active group.
• Control: this key is often used in practice with one of the preceding keys for entering
characters. See below the interpretation that this International Standard prescribes for these
interactions.
• Group Select: per se, this key allows changing group. This action may be locking or not.
ISO/IEC 9995-2 specifies what follows to this effect :
For the input of graphic character repertoire of collection 281 (titled MES-1) as specified in
ISO/IEC 10646-1:2000/Amd.1, a Common Secondary Group Layout (to be used as group 2)
is specified in ISO/IEC 9995-3. Specifically for group 2, the activation of group 2 with the
Group select function is recommended to be latching for the next character entered and for
this character only. In other words, activation of group 2 changes the logical state of the
keyboard so that all keys involved in this activation can be released, and still, the next key
typed will be selecting a character in group 2. After typing such a character in this mode, the
keyboard then reverts back automatically to the group active before group 2 was activated.
NOTE It is recommended, when a group which defines a complete script (e.g. Hiragana, Katakana,
Cyrillic, Greek, Arabic, Hebrew) is selected, that the group be locked in this position until another group
select or a de-selection is done (e.g., after Hiragana is selected, returning to Group 1 is typically done by
explicitly deselecting Hiragana). The exact way to activate the group selection with a Group Select
function is not standardized at this point. It is recommended that at the minimum any Group locking,
except for group 1 and group 2, be visually indicated by an appropriate means (e.g. lamp, LCD or
screen indication). Ideally the actual group in use should at any time be identified to the user.
• Usual combinations of certain function keys and their standardized interpretation:
a) Level 2 Select + Level 3 Select (Shift+AltGr) shall be interpreted as follows (two
scenarios are possible):
1. According to ISO/IEC 9995-2 : « Specifically, for the harmonized 48 graphic key
keyboard arrangement, when characters are allocated in more than one group, the
Group select function shall be activated by holding a Level 3 select key [AltGr]
depressed while depressing a Level 2 select [Shift] key or vice-versa. » One will
understand that releasing these two keys without hitting a third key at the same
time shall have the same effect as hitting a dedicated Group Select key.
2. If an alphanumeric key is hit while the Level 2 Select and Level 3 Select are
depressed, the state of the keyboard shall be interpreted as providing access to a
group related to the previously active group, but different, at level 1. Certain
implementations consider this as equivalent to a virtual level 4 in the active group.
Although that does not correspond to a standardized concept, this view is tolerable
in a restricted linguistic circle.
b) Level 2 Select [Shift] + Control shall be interpreted as follows:
If an alphanumeric key is hit while the Level 2 Select [Shift] and Control are depressed,
the state of the keyboard shall be interpreted as providing access to a group related to
the previously active group, but different, at level 2. Certain implementations consider
this as equivalent to a virtual level 5 in the active group. Although that does not
correspond to a standardized concept, this view is tolerable in a restricted linguistic
circle.
© ISO/IEC 2008 – All rights reserved 3

c) Level 3 Select [AltGr] + Control shall be interpreted as follows:
If an alphanumeric key is hit while the Level 3 Select and Control are depressed, the
state of the keyboard shall be interpreted as providing access to a group related to the
previously active group, but different, at level 3. Certain implementations consider this
as equivalent to a virtual level 6 in the active group. Although that does not correspond
to a standardized concept, this view is tolerable in a restricted linguistic circle.
d) Level 2 Select [Shift] + Group Select shall be interpreted as follows:
If an alphanumeric key is hit while the Level 2 Select and Group Select are depressed,
the state of the keyboard shall be interpreted as providing access to a group related to
the previously active group, but different, at level 2. Certain implementations consider
this as equivalent to a virtual level 5 in the active group. Although that does not
correspond to a standardized concept, this view is tolerable in a restricted linguistic
circle. As an example, in the context of ISO/IEC 9995-3, where group 1 is a Latin
national group and where the related group is group 2 (« Common Secondary Group
Layout » according to ISO/IEC 9995-3 nomenclature), the state of the keyboard
locates the next character entry in Group 2, at level 2.
e) Level 3 Select [AltGr] + Group Select shall be interpreted as follows:
If an alphanumeric key is hit while the Level 3 Select and Group Select are depressed,
the state of the keyboard shall be interpreted as providing access to a group related to
the previously active group, but different, at level 3. Certain implementations consider
this as equivalent to a virtual level 6 in the active group. Although that does not
correspond to a standardized concept, this view is tolerable in a restricted linguistic
circle. As an example, in the context of ISO/IEC 9995-3, where group 1 is a Latin
national group and where the related group is group 2 (« Common Secondary Group
Layout » according to ISO/IEC 9995-3 nomenclature), the state of the keyboard
locates the next character entry in Group 2, at level 3.
5.3 Special keys
The following function keys exist on different commercialized keyboards. Their type can be generalized
according to needs.
a) In Japan, texts can be edited in phonetic script (kanas) or in kanji (Chinese characters). In Korea a
similar method is used to convert hangul (Korean letters) into hanza (Chinese characters). A kana-
kanji (or hangul-hanza) conversion key allows converting a series of phonetic characters already
entered into Chinese characters (kanji or hanza) on the fly. This key is not used to enter characters
in conjunction with other keys but must be described as a special function key that involves a
transformation program for already entered characters.
b) On certain keyboards outside of Japan or Korea, there exists a combine key that plays a role similar
to the kana-kanji key but which is generalized for the generation of characters unavailable on the
keyboard from characters already entered on it (fictional example: generating character § from the
merging of the two characters s and s, or S and S, or from any combination of these two characters).
The functioning of this combine key is not standardized at the moment. On certain keyboards,
composition is transitive while on others it is more of a static nature. As for the kana-kanji or hangul-
hanza conversion key, hitting the combine key involves a transformation program for already entered
characters.
5.4 Dead keys
Certain keys are called «dead keys» because hitting them generates a partial character which may or may not
appear on the screen. The complete character (also called «fully formed» or «precomposed») is generally
made of a base letter and of one or many diacritical marks.
4 © ISO/IEC 2008 – All rights reserved

NOTE ISO/IEC 9995-3 says what follows about generating fully-formed characters with the help of dead keys:
«Diacritical marks appear above or below certain letters, and all of them are non-spacing characters. Actuating a key
with a diacritical mark, followed by actuating a key with a letter, shall indicate that the graphical symbols of the two
characters are intended to be combined. Actuating a key with a diacritical mark, followed by actuating the space bar,
shall indicate that the diacritical mark is intended to appear as a graphic character of its own (i.e. free-standing).
It is recommended that the method used for the deletion of a character should also be used to cancel a partially-
constructed character, such as a diacritical mark without a following letter or a following Space character.»
NOTE Diacritical marks may also appear everywhere around the body of a letter or even inside it.
To this can be added that dead key usage may also be transitive, like for the case of combine keys, i.e. certain scripts
(polytonic Greek, Vietnamese) require the possibility to enter more than one diacritical mark on a single base letter. Unless
the base letters are directly available on the keyboard, precomposed with a first diacritical mark integrated to the letter (as
in the case of Scandinavian å, which can also be affected by other diacritical marks), it is then necessary that the function
of entering diacritical marks be transitive, i.e. the entry of multiple diacritical marks in a row be applicable to the base
character which comes after these marks.
5.5 Stickiness and stable (explicit) locking or temporary (implicit) latching
The state of a keyboard may be locked in a stable or temporary fashion, generally after activating a key or a
key sequence.
5.5.1 Stable locking (explicit)
The following keys or functions activate a stable locking, which is deactivated in pressing another time on the
same key or in calling the same function:
• Capitals lock
• Level 2 lock
• Group lock
• Numeric lock
5.5.2 Temporary latching (implicit)
ISO/IEC 9995-3 recommends, when one presses the Group selection key, that the state of the keyboard be
locked for the entering of the next key only (see also 5.2 under Group select). In fact this behaviour depends
on the nature of the group invoked, and could apply to groups other than group 2. Group 2 has dead keys
whose accents are applicable to basic Latin characters normally found in the group that prevailed before
invoking group 2. It is logical to go back to the preceding group for hitting this key. Other characters of group 2
are also infrequently used characters.
Another group which contains infrequent characters may have this temporary latching property. The group
definition must then have provision for this implicit temporary latching property (otherwise the group shall be
locked explicitly).
5.5.3 Stickiness (accessibility)
Stickiness is a temporary function latching property applicable to function keys normally used in conjunction
with other keys. The first use is to allow handicapped people to hit keys one by one, without having to type two
keys simultaneously (for example for entering the initial capital letter of a sentence, the fact to hit the Level 2
select key in this mode will lock the state of the keyboard in capitals just for entering the next key).
In «sticky» mode, successively hitting function keys and releasing them, one by one, is equivalent to
virtually maintaining a pressure on all these keys at the same time as long as an alphanumeric key has not
been hit. At this moment only, the virtual depression of these function keys is deactivated.
© ISO/IEC 2008 – All rights reserved 5

The stickiness mode is activated in depressing a Level 2 select key five times in a row. It is deactivated in
depressing again a Level 2 select key five times in a row.
5.6 Supplementary keys (accessible or not by the computer software) ; Email, Fn function
keys, «Windows» keys, Sleep, On/Off)
Even if these keys send a scan code already processed by the computer, they shall be described like other
keys, since technically they do not constitute exceptions to what the keyboard description could contain.
Other keys (those not sending a scan code to the computer) may be described narratively as the software
might have to be aware of their existence and geometric placement on the keyboard for helping the user.
5.7 Complex state change (mainly for accessibility purposes)
This clause standardizes the following state changes:
Successively hitting Level 2 select five times in a row:
Hitting Level 2 select during 10 seconds:
[Alt][ Level 2 select][Print Screen]:
etc.
5.8 Keyboard feedback
A protocol for the operating systems is specified in Annex A to precisely enquire the hardware for the precise
keyboard model used. The response from the keyboard hardware is with a file respecting the keyboard
description format specified in clause 5.9. This functionality is optional in this International Standard, and it
implements "plug-and-play" functionality for keyboards.
5.9 Machine-readable keyboard description language
The keyboard description format is meant to be capable of describing existing capabilities of today’s keyboard
hardware and its associated software, plus foreseeable extensions. It is therefore desirable to define the
format in an extensible international standard format like ISO SGML, in the form known as ISO RELAX NG,
with an easy conversion to industry standard XML. The format is described in Annex B (normative).
The keyboard definition format is primarily intended to be used by the operating system, and during its boot
process (eg. in the BIOS), but can also be used for other purposes, such as reporting from the hardware of a
keyboard to help the operating system configuring the keyboard driver, or to present the keyboard on the
screen with a user-friendly picture.
A good test whether the format is capable of supporting existing software is to do a mapping to predominant
keyboard description formats and techniques such as Microsoft keyboard definitions, X keyboard definitions,
UNIX command line keyboard definitions and industry standard XML. A description of different industry
standard formal keyboard description formats and their correspondence to the formal keyboard description
format defined in this International Standard is included in Annex D (informative).
In addition some functionality found in some products are covered, such as keyboards with programmable
keys and keyboards with multiple key assignments such as telephone keypads.
The keyboard definition format is described in 4 sections:
1. a keyboard identification and general features section, including make and model, serial number,
country or region and language to which the keyboard applies, engraving language identification, and
distinctive features, such as relief, or presence of lights on keys.
6 © ISO/IEC 2008 – All rights reserved

2. the hardware geometry layout, which indicates a largely known geometry layout, such as a 102-key
PC keyboard. This section also gives physical information such as size of keys, and amount of
pressure needed to activate keys.
3. the keyboard layout, which gives the actual assignment of characters to each key.
4. key combinations which gives combinations of keys, such as those of characters affected by dead
keys.
Any of the information may be left out, and the operating system or the user may override the information
according to preferences. The order of precedence in the information modification is first the user, then the
system and then the description coming from the hardware.
In the informative Appendix E a number of existing keyboard definition formats is described, together with a
mapping between these description formats and the format defined in this International Standard.
© ISO/IEC 2008 – All rights reserved 7

Annex A
(normative)
Protocol for the exchange of information between the hardware
keyboard and the software
A protocol is defined here to make a conforming keyboard report its configuration to the operating system. The
report shall be data in accordance to Annex B.
The command to ask the keyboard to report its configuration is issued by the operating system via the
sequence:
Set caps Lock
set num lock
clear num lock
set num lock
clear caps lock
clear num lock
NOTE Refer to Annex C for a description of some different stages in history of keyboard hardware and associated
software.
8 © ISO/IEC 2008 – All rights reserved

Annex B
(normative)
Formal description language
This Annex specifies semantic and syntax for the keyboard description format defined in this International
Standard.
B.1 Introduction
The keyboard description is represented as XML document, conforming to the formal definition expressed
using RELAX NG syntax (see 1.). The purpose of the keyboard description is to provide the operating system
(OS) and user applications with non-ambiguous complete explanation of the physical keyboard features and
recommended usage: keycodes, indicators, modifiers, produced characters etc. The description is expected to
be provided from hardware (wherever possible) or from the keyboard driver (for legacy hardware).
B.2 Overview
The keyboard description generally consists of 4 sections:
dictionaries
meta-information
non-functional information
functional information
Each section is represented as 2nd level XML sub-tree. The sections are not self-contained – functional and
non-functional information refers to the elements defined within the first section of dictionaries.
B.3 Sections
B.3.1 Dictionaries
There are 4 dictionaries defined in the document:
• keycodes
• modifiers
• key types
• key interpretation rules
B.3.1.1 Keycodes
The list of keycodes contains set of pairs (string identifier, numeric keycode) which describes all possible
scancodes which can be sent by the keyboard (hardware/driver). Also, after all keycode definitions, the list
may contain a set of aliases – alternative names for already defined keycodes.
© ISO/IEC 2008 – All rights reserved 9

B.3.1.2 Modifiers
The list of modifiers includes only their names, for future reference.
B.3.1.3 Key types
The list of the key types (identified by names) includes full definition of each type:
• number of shift levels
• mapping between modifiers and shift levels
Each element of the type mapping includes a set of modifiers (empty set is allowed) and the shift level to be
used when the combination of modifiers is present in the keyboard state.
B.3.1.4 Interpretation rules
The most complex dictionary is the list of interpretation rules.
Each rule has “left” and “right” components. “Left” component defines the condition which activates the rule,
the “right” component is the proposed action to be performed – change of the state.
The rule condition is expected to include the key symbol (from the list of key symbols specified by ISO) and
some set on modifiers (each modifier can be combined with any of quantifier “any/all/none/exactly”).
The change of the state, activated by the rule, can be either change of group (relative or absolute) or change
of modifiers. This change have different scope – the state is used as either “latched” or “locked” or “base”.
B.3.2 Meta-information
The meta-information provides the information which does not describe the keyboard as such – it provide the
geographical, linguistic, etc. context.
At the moment, only list of countries (ISO 3166 3-letter codes) and languages (ISO 639 2-letter codes) are
defined. Any other properties (vendor-specific) can be put into the list of custom properties.
B.3.3 Non-functional information
The non-functional information describes the keyboard features not related to the functioning. The only feature
of that kind is the keyboard geometry. The geometry is described as SVG (Scalable Vector Graphics) element
embedded into the keyboard description.
B.3.4 Functional information
The functional information section specifies the actual functionality of the keyboard – the way keyboard
processes keypresses.
B.3.4.1 List of groups
The first subsection of the functional information contains the list of groups recommended by the keyboard
manufacturer. This list can be used by an operating system, or drivers, or applications for preparing the actual
configuration. Each element of the list is a group name1. The order of groups in the list is the order to be used
further in the functional section.
B.3.4.2 List of keys
The list of keys comprises the largest subsection of the functional information.
10 © ISO/IEC 2008 – All rights reserved

Each key is defined by its scancode (numeric) and keycode (character string). The keycode refers to the
keycode dictionary (see above). While the scancode is unchangeable, the keycode can be changed by an
operating system or a keyboard driver.
A key can optionally have one raster image (in one of the raster formats, converted to ASCII using base64
encoding) representing the engraving on the key. It can for example be a vendor logo or any other symbol.
Every key corresponds to one of the types (specified in the dictionary). Also, keypress may generate a
sequence made out of universal character set symbols (in UTF-8 encoding) – depending on the current group
and shift level. This information is a recommendation for the keyboard configuration.
B.3.4.3 List of indicators
The last part of the functional section is the list of indicators.
Each indicator has a name represents optional combinations of groups or modifiers (when that combination is
active, the indicator is turned on).
B.4 A specification in RELAX NG language of the keyboard description format
default namespace = "http://www.iso.org/WG1"
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"

# A reference to a set if modifiers
setOfModifiers =
element modifier {
attribute name { xsd:string },
empty
}+
# Some actions affect either group or
# modifiers
stateChangeAction =
(# Group management.
# "relative" attribute
# indicates whether
# the value should be
# treated as absolute or
# added/removed to the
# current value
attribute type { "group" },
attribute relative { xsd:boolean },
xsd:integer)
| (# The list of modifiers to
# set/latch/lock
attribute type { "modifiers" },
setOfModifiers)
# How indicators use groups or modifiers
indicatorUse =
element use {
attribute which {
"base" | "compat" | "effective" | "latched" | "locked"
},
empty
}+
customProperties =
# Any other stuff - custom properties, if necessary.
# Can be used in drivers or vendor-specific apps.
element customProperty {
© ISO/IEC 2008 – All rights reserved 11

attribute name { xsd:string },
xsd:string
}*
start =
element keyboard {
# First, all the dictionaries we use in the definitions
element dictionaries {
# The list of keycodes.
# The default list of them should be provided separately
element keycodes {
# Each keycode is represented by the string id
# and numeric value
element keycode {
(attribute id { xsd:string }
& attribute value { xsd:int }),
empty
}+,
# The List of aliases
element alias {
(attribute id { xsd:string }
& attribute ref { xsd:string }),
empty
}*
},
# The list of modifiers used in the definition
element modifiers {
# Each modifier has nothing but name
element modifier {
attribute name { xsd:string },
empty
}*
},
# Keyboard types
element types {
element type {
(# Each type has a name
attribute name { xsd:string }
& # Number of levels for a type
attribute numLevels { xsd:int }),
# Map: (modifiers)->level
element map {
element mapEntry {
attribute level { xsd:int },
# Set of modifiers (can be empty)
# Should refer the elements from the modifiers dictionary
element modifier {
attribute name { xsd:string },
empty
}*
}*
}
}*
},
# Interpretation rules
element interpretation {
element rule {
# Each rule has a condition of execution
element condition {
# Which keycode this rule is for
element keysym {
12 © ISO/IEC 2008 – All rights reserved

attribute id { xsd:string },
empty
},
# The modifiers list (for the predicate attribute).
element modifiersList {
attribute predicate {
"all" | "any" | "exactly" | "none"
}?,
element modifier {
attribute name { xsd:string },
empty
}+
}?
},
# When the rule condition is met - what the system has to do
element action {
# The action is either of .
element latch { stateChangeAction }
| element lock { stateChangeAction }
| element set { stateChangeAction }
}
}*
}
},
# Meta-information - describes the keyboard purpose
element meta {
# List of countries, can be empty. ISO 3166
element countriesList {
element country { xsd:string }*
},
# List of languages, can be empty. ISO 639
element languagesList {
element language { xsd:string }*
},
customProperties
},
element nonFunctional {
element geometry { external "Tiny-1.2.rnc" }
},
element functional {
element groupList {
element group {
attribute name { xsd:string }
}+
},
# The list of the keys on the keyboard
element keyList {
element key {
(# Physical scancode
attribute scancode { xsd:int }
& # One keycode per key -
# see the keycodes dictionary above
attribute keycode { xsd:string }),
# Meta-information about the key (optional)
element meta {
# Engraving (bitmap image)
element engraving {
attribute format { "png" | "gif" | "bmp" },
xsd:base64Binary
}?,
© ISO/IEC 2008 – All rights reserved 13

customProperties
}?,
# Each key can have 0 - N groups
element group {
# For each group, a key has a type
attribute type { xsd:string },
# Within each group, there can be multiple shift levels
# On each shift level, we can have either one symbol
# or a sequence
element shiftLevel {
element symbol { xsd:string }+
}+
}*
}+
},
# The list of indicators
element indicatorsList {
element indicator {
# Each real indicator should have a name
attribute name { xsd:string },
element groups {
indicatorUse
# Which groups are reflected by this indicator

}?,
element modifiers {
indicatorUse,
# Which modifiers are reflected by this indicator
setOfModifiers
}?
}+
}
}
}
B.5 A description in EBNF language of the keyboard format
B.5.1 Rules for BNF syntax
In the following a description of the Relax NG definition is given in the form of a Backus-Naur description
format.
The syntax used here is near to ISO/IEC 14977, but "_" is allowed in identifiers, and comma is not used as
concatenator, as the items are just concatenated. Definitions between
...


NORME ISO/CEI
INTERNATIONALE 24757
Première édition
2008-11-01
Technologies de l'information — Modèle
d'interactions sur claviers — Description
de clavier lisible à la machine
Information technology — Keyboard interaction model —
Machine-readable keyboard description

Numéro de référence
ISO/CEI 24757:2008(F)
©
ISO/CEI 2008
ISO/CEI 24757:2008(F)
PDF – Exonération de responsabilité
Le présent fichier PDF peut contenir des polices de caractères intégrées. Conformément aux conditions de licence d'Adobe, ce fichier
peut être imprimé ou visualisé, mais ne doit pas être modifié à moins que l'ordinateur employé à cet effet ne bénéficie d'une licence
autorisant l'utilisation de ces polices et que celles-ci y soient installées. Lors du téléchargement de ce fichier, les parties concernées
acceptent de fait la responsabilité de ne pas enfreindre les conditions de licence d'Adobe. Le Secrétariat central de l'ISO décline toute
responsabilité en la matière.
Adobe est une marque déposée d'Adobe Systems Incorporated.
Les détails relatifs aux produits logiciels utilisés pour la création du présent fichier PDF sont disponibles dans la rubrique General Info
du fichier; les paramètres de création PDF ont été optimisés pour l'impression. Toutes les mesures ont été prises pour garantir
l'exploitation de ce fichier par les comités membres de l'ISO. Dans le cas peu probable où surviendrait un problème d'utilisation,
veuillez en informer le Secrétariat central à l'adresse donnée ci-dessous.

DOCUMENT PROTÉGÉ PAR COPYRIGHT

©  ISO/CEI 2008
Droits de reproduction réservés. Sauf prescription différente, aucune partie de cette publication ne peut être reproduite ni utilisée sous
quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie et les microfilms, sans l'accord écrit
de l'ISO à l'adresse ci-après ou du comité membre de l'ISO dans le pays du demandeur.
ISO copyright office
Case postale 56 • CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Publié en Suisse
ii © ISO/CEI 2008 – Tous droits réservés

ISO/CEI 24757:2008(F)
Sommaire Page
Avant-propos. iv
Introduction . v
1 Domaine d'application. 1
2 Conformité. 1
3 Références normatives . 1
4 Termes et définitions. 1
5 Spécifications. 2
5.1 Description des touches et des dispositions de clavier. 2
5.2 États produits par l’interaction des touches de fonction utilisées pour la saisie . 3
5.3 Touches spéciales. 4
5.4 Touches mortes . 5
5.5 Rémanence et verrouillage stable (explicite) ou temporaire (implicite) . 5
5.6 Touches supplémentaires (accessibles ou non par le logiciel de l’ordinateur); Courriel,
touches de fonctions Fn, touches «Windows», Sommeil, Départ/Arrêt). 6
5.7 Changement d’état complexe (principalement pour l’accessibilité) . 6
5.8 Rétroaction – données sur le modèle du clavier. 7
5.9 Langage de description de clavier lisible à la machine. 7
Annexe A (normative) Protocole pour l’échange d’information entre le clavier matériel et le
logiciel. 8
Annexe B (normative) Langage de description des claviers. 9
B.1 Introduction . 9
B.2 Vue d’ensemble. 9
B.3 Sections . 9
B.3.1 Dictionnaires . 9
B.3.2 Méta-informations. 10
B.3.3 Informations non fonctionnelles . 10
B.3.4 Informations fonctionnelles. 11
B.4 Spécification en langage RELAX NG du format de description des claviers. 11
B.5 Description en langage EBNF du format de clavier . 15
B.5.1 Règles de la syntaxe BNF . 15
B.5.2 Grammaire des descriptions du langage Relax NG pour l’ISO/CEI 24757. 15
B.6 Un exemple de description de clavier . 17
B.7 Format en syntaxe XML. 18
Annexe C (informative) Brève histoire des claviers d’ordinateurs et des logiciels associés . 24
C.1 Le clavier IBM. 24
C.2 Le clavier du PC AT et du PS/2. 24
C.3 Le clavier USB. 25
Annexe D (informative) Correspondance entre les formats . 26
D.1 Généralités . 26
D.2 Format xkb utilisé dans X Window sous Unix/Linux . 26
D.2.1 Descriptions xkb. 26
D.2.2 Exemple de xkb. 26
D.2.3 Exemple de description de clavier en syntaxe ISO/CEI 24757. 55
D.2.4 Programme pour convertir les descriptions xkb au format ISO/CEI 24757. 122
Bibliographie . 137

© ISO/CEI 2008 – Tous droits réservés iii

ISO/CEI 24757:2008(F)
Avant-propos
L'ISO (Organisation internationale de normalisation) et la CEI (Commission électrotechnique internationale)
forment le système spécialisé de la normalisation mondiale. Les organismes nationaux membres de l'ISO ou
de la CEI participent au développement de Normes internationales par l'intermédiaire des comités techniques
créés par l'organisation concernée afin de s'occuper des domaines particuliers de l'activité technique. Les
comités techniques de l'ISO et de la CEI collaborent dans des domaines d'intérêt commun. D'autres
organisations internationales, gouvernementales et non gouvernementales, en liaison avec l'ISO et la CEI
participent également aux travaux. Dans le domaine des technologies de l'information, l'ISO et la CEI ont créé
un comité technique mixte, l'ISO/CEI JTC 1.
Les Normes internationales sont rédigées conformément aux règles données dans les Directives ISO/CEI,
Partie 2.
La tâche principale du comité technique mixte est d'élaborer les Normes internationales. Les projets de
Normes internationales adoptés par le comité technique mixte sont soumis aux organismes nationaux pour
vote. Leur publication comme Normes internationales requiert l'approbation de 75 % au moins des
organismes nationaux votants.
L'attention est appelée sur le fait que certains des éléments du présent document peuvent faire l'objet de
droits de propriété intellectuelle ou de droits analogues. L'ISO et la CEI ne sauraient être tenues pour
responsables de ne pas avoir identifié de tels droits de propriété et averti de leur existence.
L'ISO/CEI 24757 a été élaborée par le comité technique mixte ISO/CEI JTC 1, Technologies de l'information,
sous-comité SC 35, Interfaces utilisateur.

iv © ISO/CEI 2008 – Tous droits réservés

ISO/CEI 24757:2008(F)
Introduction
La présente Norme internationale s’adresse à ceux qui conçoivent des systèmes d’exploitation et des
applications logicielles prenant le clavier en charge (y compris la présentation complète du clavier à l’écran à
des fins de documentation). Son but est d’harmoniser les pratiques de l’industrie en matière de description
machine des claviers (PC, assistants numériques, Linux, Windows, Apple, etc.) Elle vise finalement à faciliter
la production de pilotes interopérables pour les utilisateurs et à permettre une meilleure assistance à
l’utilisateur en offrant une correspondance plus précise entre le clavier matériel tel que gravé et
géométriquement configuré, et l’interface conceptuelle dont dispose le système d’exploitation et ses
applications.
© ISO/CEI 2008 – Tous droits réservés v

NORME INTERNATIONALE ISO/CEI 24757:2008(F)

Technologies de l'information — Modèle d'interactions
sur claviers — Description de clavier lisible à la machine
1 Domaine d'application
La présente Norme internationale a pour but de procurer un format de description qui peut non seulement
décrire entièrement les Normes internationales de clavier, mais aussi décrire les possibilités des claviers du
marché actuel et envisageable dans un avenir prévisible, de même que leur fonctionnement avec des
systèmes d’exploitation correspondants. Elle décrit les interactions possibles entre les touches d’un clavier et
normalise la description des claviers pour qu’elle soit lisible à la machine tout en restant interprétable par des
humains de manière relativement facile.
2 Conformité
La description lisible à la machine d’un clavier est conforme à la présente Norme internationale si les
prescriptions de 5.1 à 5.9 sont respectées.
3 Références normatives
Les documents de référence suivants sont indispensables pour l'application du présent document. Pour les
références datées, seule l'édition citée s'applique. Pour les références non datées, la dernière édition du
document de référence s'applique (y compris les éventuels amendements).
ISO 639-1, Codes pour la représentation des noms de langue — Partie 1: Code alpha-2
ISO 639-2, Codes pour la représentation des noms de langue — Partie 2: Code alpha-3
ISO/CEI 9995-1, Technologies de l'information — Disposition des claviers conçus pour la bureautique —
Partie 1: Principes généraux pour la disposition des claviers
ISO/CEI 9995-2, Technologies de l'information — Disposition des claviers conçus pour la bureautique —
Partie 2: Module alphanumérique
ISO/CEI 9995-3, Technologies de l'information — Disposition des claviers conçus pour la bureautique —
Partie 3: Dispositions complémentaires de la zone alphanumérique du module alphanumérique
ISO/CEI 10646, Technologies de l'information — Jeu universel de caractères codés sur plusieurs octets
(JUC)
4 Termes et définitions
Pour les besoins du présent document, les termes et définitions donnés dans l'ISO/CEI 9995-1 ainsi que les
suivants s'appliquent.
© ISO/CEI 2008 – Tous droits réservés 1

ISO/CEI 24757:2008(F)
4.1
coordonnées de référence
identifiant formé d’une lettre et de deux chiffres décimaux, se référant à la grille de numérotation permettant
de positionner une touche à l’intersection d’une rangée et d’une colonne du clavier, où les rangées sont
identifiées par des lettres et les colonnes par des chiffres
5 Spécifications
5.1 Description des touches et des dispositions de clavier
Le clavier est décrit pour des machines dans la présente Norme internationale en utilisant les propriétés
suivantes :
• les coordonnées logiques de chaque touche suivant un système de numérotation par grille établi dans
l’ISO/CEI 9995-1. Ces coordonnées sont appelées «coordonnées de référence»;
NOTE Les coordonnées de référence d’un clavier peuvent correspondre à une norme de clavier.
• la description de la taille en millimètres (mm), de la forme et des coordonnées physiques de chaque
touche d’un clavier matériel, pour permettre de reproduire précisément le clavier de l’utilisateur à
l’écran;
• optionnellement, région ou pays principal et code de langue applicables à cette disposition;
• l’apparence réelle de l’étiquetage;
• la division logique de chaque touche du clavier en groupes et en niveaux au sein de chaque groupe.
Au sein d’un groupe, à un niveau donné, chaque caractère est décrit en utilisant cinq autres propriétés:
• par une chaîne d’identifiants de l’ISO/CEI 10646 formés de la lettre U suivie de 8 ou de 4 à 6 chiffres
hexadécimaux; si le caractère est composé ou obtenu par combinaison, les identifiants des
caractères individuels qui composent le caractère résultant sont donnés avec la séquence qui permet
cette composition;
• optionnellement, par son nom de caractère dans une langue donnée, identifiée selon son codet dans
l’ISO 639-1 ou selon son codet terminologique dans l’ISO/CEI 639-2;
• optionnellement, par un ou plusieurs «codes de balayage» (qui peut varier selon l’état du clavier,
selon le matériel utilisé, etc.);
• dans le cas d’une position qui fait de la touche une touché morte, une description des combinaisons
requises par l’utilisateur, avec le ou les caractères qui en résultent;
• optionnellement, une étiquette pour identifier les caractères dont le glyphe gravé sur la touche est
différent de sa représentation interne (par exemple U00A6 barre verticale discontinue par opposition à
U007C barre verticale).
NOTE La description des combinations requises n’interdit pas aux pilotes de clavier de prendre en compte d’autres
combinaisons pour créer d’autres caractères si ces combinaisons sont déjà définies. La description dont il est ici question
est destinée à assurer que les besoins de l’utilisateur sont satisfaits, quelles que soient les définitions préalables.
Cette description ne peut faire abstraction de l’interaction des touches entre elles pour produire des résultats.
L’article qui suit décrit les différents états d'un clavier nécessaires à la saisie des caractères et pris en compte
dans la présente Norme internationale.
2 © ISO/CEI 2008 – Tous droits réservés

ISO/CEI 24757:2008(F)
5.2 États produits par l’interaction des touches de fonction utilisées pour la saisie
La frappe d’une des touches de fonction suivantes détermine un état produisant le caractère désiré. Cet
article normalise les états conventionnels produits par l’interaction de ces touches avec des touches
alphanumériques.
• Sélection du niveau 2 (appelé aussi MAJ, en anglais «Shift»): cette touche en soi permet la
saisie de caractères de niveau 2 dans le groupe actif.
• Sélection du niveau 3 (appelé aussi AltCar): cette touche en soi permet la saisie de
caractères de niveau 3 dans le groupe actif.
• Contrôle: cette touche est souvent utilisée en pratique avec une des touches précédentes
pour la saisie de caractères. Voir ci-après l’interprétation que prescrit la présente Norme
internationale pour ces interactions.
• Sélection de groupe : cette touche en soi permet le changement de groupe. Cette action peut
être verrouillante ou non.
L’ISO/CEI 9995-2 précise ce qui suit à cet effet:
Pour la saisie du répertoire de caractères graphiques de la collection 281 (intitulée MES-1),
précisée dans l'Amendement 1 à l'ISO/CEI 10646:1-2000, l'on spécifie dans l'ISO/CEI 9995-3
la disposition du groupe secondaire courant (qui doit être utilisé en tant que groupe 2).
Particulièrement pour le groupe 2, l'on recommande que la fonction de sélection de groupe
verrouille ce groupe pour la saisie du prochain caractère, et pour ce caractère seulement.
Autrement dit, l'activation du groupe 2 change l'état logiciel du clavier de telle sorte que même
si l'on relâche toutes les touches impliquées dans le processus d'activation, la prochaine fois
que l'on appuie sur une touche, celle-ci sélectionnera un caractère du groupe 2. Après avoir
saisi un tel caractère dans ce mode, le clavier revient automatiquement au groupe qui
prévalait avant que l'on passe au groupe 2.
NOTE On recommande, lors de la sélection d'un groupe qui couvre un système d'écriture complet
(par exemple l'hiragana, le katakana, le cyrillique, le grec, l'arabe, l'hébreu), de verrouiller ce groupe à
demeure jusqu'à ce qu'on le désactive ou que l'on sélectionne un autre groupe (à titre d'exemple, après
avoir activé le groupe hiragana, il est d'usage de le désactiver explicitement pour retourner au groupe 1).
La manière exacte d'activer la sélection de groupe avec une fonction de sélection de groupe n'est pour
le moment pas normalisée. Il est recommandé comme mesure minimale d'indiquer visuellement tout
verrouillage de groupe par un moyen approprié (par exemple une lampe, un affichage à cristaux liquides
ou une indication à l'écran, sauf pour les groupes 1 et 2. Idéalement, il convient d'identifier à l'utilisateur
le groupe actuel en usage.
• Combinaisons habituelles de certaines touches de fonction et leur interprétation normalisée:
a) Sélection de niveau 2 + Sélection de niveau 3 (MAJ + AltCar) doit s’interpréter comme suit (deux
scénarios sont possibles) :
1. Selon l’ISO/CEI 9995-2: «Particulièrement, pour l'agencement de clavier harmonisé à
48 touches graphiques, si des caractères sont attribués à plus d'un groupe, la
fonction de sélection de groupe doit s'activer quand on appuie sur une touche de
sélection du niveau 3 [AltCar] alors que l'on appuie déjà sur une touche de sélection
du niveau 2 [MAJ], ou vice-versa.» On comprendra que le relâchement de ces deux
touches sans frapper entre-temps une autre touche doit avoir le même effet que
frapper une touche de changement de groupe dédiée.
2. Si une touche alphanumérique est frappée pendant que les touches Sélection de
niveau 2 et Sélection de niveau 3 sont enfoncées, l’état du clavier doit être interprété
comme donnant accès à un groupe apparenté au groupe précédemment actif, mais
différent, au niveau 1. Certaines implantations considèrent ceci comme équivalent à
un niveau 4 virtuel dans le groupe actif. Même si cela ne correspond pas à un
© ISO/CEI 2008 – Tous droits réservés 3

ISO/CEI 24757:2008(F)
concept normalisé, cette vue est tolérable dans le contexte d’un cercle linguistique
restreint.
b) Sélection de niveau 2 [MAJ] + Contrôle doit s’interpréter comme suit :
Si une touche alphanumérique est frappée pendant que les touches Sélection de niveau
2 [MAJ] et Contrôle sont enfoncées, l’état du clavier doit être interprété comme se
trouvant dans un groupe apparenté au groupe actif, mais différent, au niveau 2.
Certaines interprétations considèrent ceci comme équivalent à un niveau 5 virtuel dans
le groupe actif. Même si cela ne correspond pas à un concept normalisé, cette vue est
tolérable dans le contexte d’un cercle linguistique restreint.
c) Sélection de niveau 3 [AltCar] + Contrôle doit s’interpréter comme suit :
Si une touche alphanumérique est frappée pendant que les touches Sélection de
niveau 3 et Contrôle sont enfoncées, l’état du clavier doit être interprété comme se
trouvant dans un groupe apparenté au groupe actif, mais différent, au niveau 3.
Certaines interprétations considèrent ceci comme équivalent à un niveau 6 virtuel dans
le groupe actif. Même si cela ne correspond pas à un concept normalisé, cette vue est
tolérable dans le contexte d’un cercle linguistique restreint.
d) Sélection de niveau 2 [MAJ] + Sélection de groupe doit s’interpréter comme suit :
Si une touche alphanumérique est frappée pendant que les touches Sélection de niveau
2 et Sélection de groupe sont enfoncées, l’état du clavier doit être interprété comme se
trouvant dans un groupe apparenté au groupe actif, mais différent, au niveau 2.
Certaines interprétations considèrent ceci comme équivalent à un niveau 5 virtuel dans
le groupe actif. Même si cela ne correspond pas à un concept normalisé, cette vue est
tolérable dans le contexte d’un cercle linguistique donné. Par exemple, dans le contexte
de l’ISO/CEI 9995-3, où le groupe 1 est un groupe latin national et où le groupe
apparenté est le groupe 2 («groupe secondaire courant» selon l’appellation de
l’ISO/CEI 9995-3), l’état du clavier situe la saisie du prochain caractère dans le groupe 2,
au niveau 2.
e) Sélection de niveau 3 [AltCar] + Sélection de groupe doit s’interpréter comme suit :
Si une touche alphanumérique est frappée pendant que les touches Sélection de
niveau 3 et Sélection de groupe sont enfoncées, l’état du clavier doit être interprété
comme se trouvant dans un groupe apparenté au groupe actif, mais différent, au
niveau 3. Certaines interprétations considèrent ceci comme équivalent à un niveau 6
virtuel dans le groupe actif. Même si cela ne correspond pas à un concept normalisé,
cette vue est tolérable dans le contexte d’un cercle linguistique donné. Par exemple,
dans le contexte de l’ISO/CEI 9995-3, où le groupe 1 est un groupe latin national et où le
groupe apparenté est le groupe 2 («groupe secondaire courant» selon l’appellation de
l’ISO/CEI 9995-3), l’état du clavier se situe dans le groupe 2, au niveau 3.
5.3 Touches spéciales
Les touches de fonction suivantes existent sur différents claviers commercialisés. Le type peut en être
généralisé au besoin.
a) Au Japon, les textes peuvent être rédigés en écriture phonétique (kanas) ou en écriture kanji (caractères
chinois). En Corée on a recours à une méthode semblable pour convertir l’hangoûl (lettres coréennes) en
hanza (caractères chinois). Une touche de conversion kana-kanji (ou hangoûl-hanza) permet de convertir
à la volée une suite de caractères phonétiques déjà saisis en caractères chinois. Cette touche ne sert
pas à la saisie de caractères en combinaison avec d’autres touches mais doit être décrite comme touche
de fonction spéciale qui fait entrer en jeu un programme de transformation de caractères déjà saisis.
4 © ISO/CEI 2008 – Tous droits réservés

ISO/CEI 24757:2008(F)
b) Sur certains claviers hors-Japon ou hors-Corée, il existe une touche combinatoire qui joue un peu le
même rôle que la touche kana-kanji mais généralisée à la création de caractères non disponibles au
clavier à partir de caractères déjà saisis sur celui-là (exemple fictif: la création du caractère § à partir de
l’amalgame des deux caractères s et s, ou S et S, ou toute combinaison de ces deux caractères). Le
fonctionnement de cette touche combinatoire n’est pas normalisé pour l’instant. Sur certains claviers, la
composition est transitive tandis que sur d’autres elle est plus statique. Comme pour la touche kana-kanji,
la frappe de la touche combinatoire fait entrer en jeu un programme de transformation de caractères déjà
saisis.
5.4 Touches mortes
Certaines touches sont dites mortes en cela que leur frappe crée un caractère partiel qui peut ou non
apparaître à l’écran. Le caractère complet (dit aussi «pleinement formé» ou «précomposé») est en général
formé d’une lettre de base et d’un ou de plusieurs signes diacritiques.
NOTE L'ISO/CEI 9995-3 dit de la formation de caractères pleinement formés à l’aide de touches mortes ce qui
suit:
«Les signes diacritiques figurent au-dessus ou au-dessous de certaines lettres, et sont tous des caractères affectés à
une touche morte. Enfoncer une touche représentant un signe diacritique, puis enfoncer une touche représentant
une lettre, doit indiquer que les symboles graphiques de deux caractères sont destinés à être combinés. Enfoncer
une touche avec un signe diacritique puis appuyer sur la barre d'espace, doit indiquer que le signe diacritique est
destiné à apparaître comme un caractère graphique à part entière (c’est-à-dire physiquement autonome).
Il est recommandé que la méthode utilisée pour l'effacement d'un caractère soit également utilisée pour annuler un
caractère incomplètement saisi, tel qu'un signe diacritique non suivi de la lettre ou de l'espace auquel il devrait être
combiné.»
NOTE Les signes diacritiques peuvent aussi figurer partout autour du cors des lettres et même à l’intérieur.
À cela on doit ajouter que l’usage de touches mortes peut aussi être transitif, comme dans le cas d’une
touche combinatoire, c’est-à-dire que certaines écritures (grec polytonique, vietnamien) prévoient parfois
plusieurs diacritiques sur une même lettre de base. À moins que les lettres de base ne soient disponible
directement au clavier sous forme de caractères précomposés avec un premier signe diacritique intégré
(comme dans le cas de la lettre scandinave å, qui peut aussi être affectée d’autres accents), il est alors
nécessaire que la fonctionnalité des signes diacritiques soit transitive, c’est-à-dire que la saisie de plusieurs
signes diacritiques de suite puisse s’applique au caractère de base dont la frappe vient en dernier.
5.5 Rémanence et verrouillage stable (explicite) ou temporaire (implicite)
L’état d’un clavier peut être verrouillé de façon stable ou temporaire, généralement après activation par une
touche de fonction ou une séquence de touches.
5.5.1 Verrouillage stable (explicite)
Les touches ou fonctions suivantes provoquent un verrouillage stable, qui n’est désactivé qu’en appuyant à
nouveau sur la même touche ou en appelant à nouveau la même fonction :
• Blocage en majuscules
• Blocage au niveau 2
• Blocage de groupe
• Blocage numérique
© ISO/CEI 2008 – Tous droits réservés 5

ISO/CEI 24757:2008(F)
5.5.2 Verrouillage temporaire (implicite)
L'ISO/CEI 9995-3 recommande, lorsque l’on appuie sur la touche de sélection de groupe pour appeler le
groupe 2 (appelé groupe secondaire courant), le verrouillage de l’état du clavier pour la frappe de la prochaine
touche seulement (voir aussi 5.2 sous Sélection de groupe). En fait ce comportement dépend de la nature du
groupe appelé, et pourrait s’appliquer à d’autres groupes que le groupe 2. Le groupe 2 comporte des touches
mortes dont les accents s’appliquent à des caractères latins de base qui se trouvent normalement dans le
groupe qui prévalait avant l’appel du groupe 2. Il est logique que l’on bascule au groupe précédent pour la
frappe de cette touche. Les autres caractères du groupe 2 sont aussi des caractères peu fréquents.
Un autre groupe qui comporterait des caractères peu fréquents peut avoir comme propriété ce verrouillage
temporaire. La définition du groupe doit donc prévoir cette propriété de verrouillage temporaire implicite
(autrement le groupe doit être verrouillé explicitement).
5.5.3 Rémanence (accessibilité)
La rémanence est une forme de verrouillage temporaire de fonction qui s’applique aux touches de fonction
normalement utilisées en interaction avec d’autres touches. L’usage premier est de permettre aux handicapés
de frapper des touches une par une, sans que l’on doive appuyer sur deux touches à la fois (par exemple
pour la saisie de la majuscule initiale d’une phrase, le fait de frapper la touche de Sélection de niveau 2 dans
ce mode implicite bloquera l’état du clavier en majuscules pour la frappe de la prochaine touche seulement).
En mode de rémanence, le fait d’appuyer successivement sur des touches de fonction, une à une, et de la
relâcher, est équivalent à maintenir virtuellement une pression sur toutes ces touches à la fois tant que l’on
n’a pas frappé une touche alphanumérique. À ce moment seulement, le maintien de ces touches de fonction
est virtuellement désactivé.
Le mode de rémanence est activé en appuyant cinq fois de suite sur une touche de sélection du niveau 2. Il
est désactivé en appuyant à nouveau cinq fois de suite sur une touche de niveau 2.
5.6 Touches supplémentaires (accessibles ou non par le logiciel de l’ordinateur); Courriel,
touches de fonctions Fn, touches «Windows», Sommeil, Départ/Arrêt)
Même si ces touches envoient un code de balayage déjà traité par l’ordinateur, elles devraient être prises en
compte comme toutes les autres touches, car techniquement elles ne font pas exception à ce que la
description de clavier pourrait contenir.
Les autres touches (celles qui n’envoient pas de code de balayage à l’ordinateur) peuvent être décrites
textuellement, puisque le logiciel peut avoir besoin de connaître leur existence et leur emplacement
géométrique sur le clavier pour être en mesure de venir en aide à l’utilisateur.
5.7 Changement d’état complexe (principalement pour l’accessibilité)
Cet article normalise les changements d’état suivants:
Appui successif de la touche de sélection du niveau 2 cinq fois:
Appui de la touche de sélection du niveau 2 pendant 10 secondes:
[Alt][Sélection du niveau 2][Impression de l’écran]:
etc.
6 © ISO/CEI 2008 – Tous droits réservés

ISO/CEI 24757:2008(F)
5.8 Rétroaction – données sur le modèle du clavier
Un protocole pour les systèmes d’exploitation est décrit à l’Annexe A pour l’interrogation du matériel sur le
modèle précis de clavier utilisé. La réponse du clavier est sous forme de fichier respectant le format décrit en
5.9. Cette fonctionnalité est optionnelle dans la présente Norme internationale et elle implante l’approche
«prêt à l’utilisation» pour les claviers.
5.9 Langage de description de clavier lisible à la machine
Le format de description de clavier est destiné à rendre possible la description des capacités des claviers
matériels et des logiciels qui leur sont associés, plus des extensions prévisibles. Il est donc souhaitable de
définir ce format dans un langage international extensible comme le langage SGML de l’ISO, dans la forme
connue sous le nom de RELAX NG de l’ISO, aisément convertible au standard de l’industrie XML. Le format
est descrit à l’Annexe B.
Le format de description de clavier est destiné au départ à l’usage des systèmes d’exploitation, et lors de son
processus d’amorçage (par exemple dans le BIOS), mais il peut aussi être utilisé à d’autres fins, telles que la
communication automatique du matériel au logiciel pour aider le système d’exploitation à configurer le pilote
de clavier, ou pour présenter à l’écran le clavier à l’aide d’une image conviviale.
Un bon test permettant de constater su ce format est adapté aux logiciels existants consiste à lui faire
correspondre les formats existants sur le marché, comme les descriptions de clavier de Microsoft, les
définitions de clavier «X keyboard», les définitions de clavier Unix en mode «lignes de commande» et celles
définies en langage XML. Une description de différents standards de l’industrie pour la definition formelle des
claviers est donnée à l’Annexe D avec leur correspondance dans le format prescrit par la prsente Norme
internationale.
Des fonctionnalités trouvées sur quelques produits sont couvertes, comme les claviers avec touches
programmables et les claviers avec attributions multiples tels que les pavés téléphoniques.
Le format de description de clavier est décrit en 4 sections:
1. une section sur l’identification du clavier et ses caractéristiques générales, incluant la marque et le
modèle, le numéro de série, le pays ou la région et la langue auxquels le clavier s’applique,
l’identification de la langue de gravure, et certaines particularités distinctives, comme le relief ou la
présence de voyants lumineux sur les touches;
2. la disposition géométrique matérielle, qui indique une disposition géométrique généralement
reconnue telle que celle d’un clavier à 102 touches de PC. Cette section renseigne aussi sur les
caractéristiques physiques du clavier, comme la taille des touches, et la force de pression requise
pour activer les touches;
3. la disposition de clavier, qui donne l’attribution exacte des caractères aux touches;
4. les combinaisons de touches, qui donnent les combinaisons telles que celles les caractères affectés
les touches mortes.
Chacune de ces données peut être omises et le système d’exploitation ou l’utilisateur peuvent les modifier en
fonction de leurs préférences. L’ordre de priorité d’application des modifications précédentes place l’utilisateur
en premier, le système d’exploitation en second et la description en provenance du matériel en dernier.
Dans l’Annexe informative E, quelques formats de définitions de claviers sont donnés, avec une
correspondance entre ces formats et celui défini dans la présente Norme internationale.
© ISO/CEI 2008 – Tous droits réservés 7

ISO/CEI 24757:2008(F)
Annexe A
(normative)
Protocole pour l’échange d’information entre le clavier matériel
et le logiciel
Cette annexe définit un protocole qui fait en sorte qu’un clavier conforme rapporte sa configuration au
système d’exploitation. Le rapport doit consiser en données conformes à l’Annexe B.
La commande demandant au clavier le rapport sur sa configuration est placée oar le système d’exploitation
en envoyant au clavier la séquence auivante:
Activer le mode de blocage en majuscules
Activer le mode de blocage numérique
Désactiver le mode de blocage numérique
Activer le mode de blocage numérique
Désactiver le mode de blocage en majuscules
Désactiver le mode de blocage numérique
NOTE Voir l’Annexe C pour une description de quelques différents stades dans l’histoire des claviers d’ordinateurs et
de leurs logiciels associés.
8 © ISO/CEI 2008 – Tous droits réservés

ISO/CEI 24757:2008(F)
Annexe B
(normative)
Langage de description des claviers
Cette annexe précise la sémantique et la syntaxe du format de description des claviers prescrit par la
présente Norme internationale.
B.1 Introduction
La description d’un clavier est représentée comme un document XML, conforme à la définition formelle
exprimée e syntaxe RELAX NG. Le but d’une telle description est de fournir au système d’exploitation et aux
applications des utilisateurs une explication complète et non ambiguë des caractéristiques matérielles du
clavier et de son usage recommandé: code des touches, indicateurs, modificateurs, caractères produits, etc.
Autant que possible, le matériel devrait procurer cette description. Autrement le pilote de clavier devrait le
faire (dans le cas de matériels anciens).
B.2 Vue d’ensemble
La description du clavier consiste en général de 4 sections:
• dictionnaires
• méta-informations
• informations non fonctionnelles
• information fonctionelles
Chaque section est représentée comme un arbre XML de second niveau. Les sections ne sont pas
autosuffisantes — les informations fonctionnelles et non fonctionnelles se réfèrent aux éléments définies à
l’intérieur de la première section des dictionnaires.
B.3 Sections
B.3.1 Dictionnaires
Les 4 dictionnaires définis dans le document sont les suivants :
• codes de touche
• modificateurs
• types de touche
• règles d’interprétation de touche
© ISO/CEI 2008 – Tous droits réservés 9

ISO/CEI 24757:2008(F)
B.3.1.1 Codes de touche
La liste des codes de touche contient des ensembles de paires (identificateur de chaîne, code numérique de
touche) qui décrivent tous les codes de balayage qui peuvent être envoyés au clavier (matériel ou pilote). De
plus, après toutes les definitions des codes de touche, la liste peut contenir un ensemble d’alias – des noms
alternatifs pour des codes de touche déjà définis.
B.3.1.2 Modificateurs
La liste des modificateurs comprend seulement leur nom, pour référence ultérieure.
B.3.1.3 Types de touche
La liste des types de touche (identifiés par leur nom) comprend une définition complète de chacun des types:
• nombre de niveaux de sélection
• correpondance entre modificateurs et niveaux de sélection
Chaque élément de correspondance de type comprend un ensemble de modificateurs (un ensemble vide est
permis) et le niveau de sélection à utiliser quand la combinaison de modificateurs est présente dans l’état du
clavier.
B.3.1.4 Règles d’interprétation
Le dictionnaire le plus complexe est la liste des règles d’interprétation.
Chaque règle a une composante «gauche» et une composante «droite». La composante «gauche» définit la
condition qui active la règle, et la composante « droite » consiete en l’action à accomplir – un changement
d’état du clavier.
La condition de règle inclut normalement le symbole de la touche (à partir de la liste des symboles de touche
prescrits par l’ISO) et un ensemble concernant les modificateurs (chaque modificateur peut être combiné
n’importe lequel des quantificateurs «any» [n’importe lequel], «all» [tous], «none» [aucun] et «exactly»
[excatement]).
Le changement d’état, activé par la règle, peut être soit un changement de groupe (relatif ou absolu), soit un
changement de modificateurs. Ce changement a une portée différente — l’état est soit «latched» [enclenché]
ou «locked» [verrouillé] ou «base» [de base].
B.3.2 Méta-informations
Les méta-informations ne décrivent pas le clavier comme tel – elles procurent le contexte géographique,
linguistique, etc.
Pour l’instant, seulement une liste de pays (codets à trois lettres de l’ISO 3166) et une liste de langues
(codets à deux lettres de l’ISO 639) est définie. Toute autre propriété (propre à un producteur) peut être
placée dans la liste des propriétés adaptables.
B.3.3 Informations non fonctionnelles
Les informations non fonctionnelles décrivent les caractéristiques du clavier non reliées à son fonctionnement.
La seule particularité de cette sorte consiste dans la géométrie du clavier. La géométrie est décrite comme
élément SVG (« Scalable Vector Graphics » [graphique vectoriel redimensionnable]) dans la description du
clavier.
10 © ISO/CEI 2008 – Tous droits réservés

ISO/CEI 24757:2008(F)
B.3.4 Informations fonctionnelles
La section des informations fonctionnelles précise la fonctionnalité du clavier – la façon dont le clavier traite la
frappe des touches.
B.3.4.1 Liste de groupes
La première sous-section sur les informations fonctionnelles contient la liste des groupes recommandés par le
producteur du clavier. Cette liste peut être utilisée par le système d’exploitation, par les pilotes, ou par les
applications, pour préparer la configuration réelle. Chaque élément de la liste est un nom de groupe. L’ordre
des groupes dans la liste est l’ordre à utiliser subséquemment dans la section fonctionnelle.
B.3.4.2 Liste de touches
La liste des touches comprend la sous-section la plus volumineuse des informations fonctionnelles.
Chaque touche est définie par son code de balayage (numérique) et par son code de touche (chaine de
caractères). Le code de touche se réfère au dictionnaire des codes de touche (voir ci-avant). Alors que le
code de balayage est non modifiable, le code de touche peut être modifié par un système d’exploiytation ou
un pilote de clavier.
Une touche peut facultativement être associée à une image tramée (dans un des formats de telles images, ,
converti selon le code «base64») représentant la gravure de la touche. Elle peut notamment être un logo de
producteur ou un autre symbole.
Chaque touche correspond à un des types (spécifiés dans le dictionnaire). De plus, la frappe d’une touche
peut engendrer une séquence de symboles tirés du jeu universel de caractères (en codage UTF-8) — selon le
groupe et le niveau de sélection courants. Ces informations constituent une recommandation pour la
configuration du clavier.
B.3.4.3 Liste des indicateurs
La dernière partie de la section fonctionnelle est la liste des indicateurs.
Chaque indicateur possède un nom et représente des combinaisons optionnelles de groupes ou de
modificateurs it represents (quand cette combinaison est active, l’indicateur est activé).
B.4 Spécification en langage RELAX NG du format de description des claviers
default namespace = "http://www.iso.org/WG1"
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"

# Référence à un ensemble de modificateurssetOfModifiers =
element modifier {
attribute name { xsd:string },
empty
}+
# Quelques actions affectent soit un groupe, soit les modificateurs
stateChangeAction =
(# Gestion de groupe.
# L’attribut "relative"
# indique si
# la valeur doit être
# traitée comme absolue ou
# ajoutée ou enlevée à la
# valeur corante
attribute type { "group" },
© ISO/CEI 2008 – Tous droits réservés 11

ISO/CEI 24757:2008(F)
attribute relative { xsd:boolean },
xsd:integer)
| (# Liste des modificateurs pour
# activer ou enclencher (latch) ou verrouiller (lock)
attribute type { "modifiers" },
setOfModifiers)
# Comment les indicateurs utilisent des groupes ou des modificateurs
indicatorUse =
element use {
attribute which {
"base" | "compat" | "effective" | "latched" | "locked"
},
empty
}+
customProperties =
# Toute autre caractéristique – sur mesure, au besoin.
# Peut être utilisé dans les pilotes ou des applications propres à un
producteur.
element customProperty {
attribute name { xsd:string },
xsd:string
}*
start =
element keyboard {
# Premièrement tous les dictionnaires utilises dans les définitions
element dictionaries {
# Liste de codes de touche.
# La liste par défaut en est fournie séparément
element keycodes {
# Chaque code de touché est représenté par un identifiant de chaîne
# et une valeur numérique
element keycode {
(attribute id { xsd:string }
& attribute value { xsd:int }),
empty
}+,
# Liste des alias
element alias {
(attribute id { xsd:string }
& attribute ref { xsd:string }),
empty
}*
},
# Liste des modificateurs utilises dans la définition
element modifiers {
# Chaque modificateur ne possède qu’un nom
element modifier
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...