11 tableaux

11.1 Introduction Table

Le modèle de la table HTML permet aux auteurs d'organiser des données - texte, texte riche, des images, des liens, des formulaires, des champs de formulaire, d'autres tables, etc. - Dans les rangées et les colonnes de cellules.

Header (voir. L' article peut être associé à chaque table de la CAPTION ), avec une brève description de la table. Vous pouvez également spécifier une description plus ( en utilisant l' attribut le résumé ) pour la commodité des personnes qui utilisent des agents sur la base de l'alphabet Broglie ou de la parole.

Les lignes de tableau peuvent être regroupées en sections en- têtes, pieds de page, et le corps ( en utilisant des éléments THEAD , TFOOT, et TBODY respectivement). Les groupes de lignes véhiculent des informations structurelles supplémentaires et peuvent être générés par des agents utilisateurs dans une variété de moyens qui affichent cette structure. Les agents utilisateurs peuvent utiliser l'appareil dans les en-têtes / corps / têtes du bas du corps pour soutenir le défilement, quel que soit l'en-tête. Lors de l'impression de longues tables, les informations d'en-tête peut être répétée sur chaque page de la table.

Les auteurs peuvent également grouper les colonnes de fournir des informations structurel supplémentaire qui peut être utilisé par les agents utilisateurs. En outre, les auteurs peuvent déclarer des propriétés de colonne au début d'une définition de la table (via les éléments COLGROUP et le COL ) d'une manière qui permet à l'agent utilisateur de générer une table séquentielle, plutôt que d' attendre une table de lire toutes les données avant de commencer la génération.

Les cellules de table peuvent contenir "header" (voir. Point TH ) ou «données» (voir. Élément de la TD ). Les cellules peuvent couvrir plusieurs lignes ou colonnes. Langue HTML modèle 4.0 de table permet aux auteurs d'étiqueter chaque cellule de telle sorte que les agents utilisateurs non-visuels sera plus facile de travailler avec les informations sur les cellules. Ces mécanismes ne sont pas seulement de faciliter considérablement l'accès pour les utilisateurs handicapés, mais aussi pour le rendre possible pour les tables de traitement multimode navigateurs sans fil avec des capacités limitées d'affichage (par exemple, les téléphones compatibles Web et pagers).

Ne pas utiliser la table seulement comme un moyen de relier le contenu du document, car il peut causer des problèmes dans la production d'aides non visuelles. En outre, si les balises utilisées avec des graphiques, il peut conduire au fait que les utilisateurs doivent effectuer un défilement horizontal pour afficher la table créée dans le système à grand écran. Pour réduire ces problèmes, les auteurs à utiliser pour la disposition du document de feuilles de style plutôt que la table.

Remarque. Cette spécification des informations plus détaillées sur les tables dans les sections sur l'application et la justification de créer des tables .

Voici un tableau simple, l'exemple qui illustre quelques-unes des caractéristiques de HTML modèle de table. La définition suivante:

  <Table border = "1"
  summary = "Ce tableau donne quelques statistiques sur les mouches des fruits:
  hauteur moyenne et le poids, le pourcentage de mouches aux yeux rouges (individus, hommes et femmes). ">
 <CAPTION> <EM> Une table de test avec des cellules fusionnées </ EM> </ CAPTION>
 <TR> <TH rowspan = "2"> <TH colspan = "2"> Moyen
  <TH rowspan = "2"> yeux rouges <BR>
 <TR> <TH> hauteur <TH> Poids
 <TR> <TH> mâle <TD> 1.9 <TD> 0,003 <TD> 40%
 <TR> <TH> femelle <TD> 1.7 <TD> 0,002 <TD> 43%
 </ TABLE>

Il doit être généré dans le terminal similaire à ce qui suit:

  Une table de test avec des cellules fusionnées
  / ------------------------------------------------- --------- \
  |  |  moyen |  Rouge |
  |  | ------------------- |  eye |
  |  |  hauteur |  poids |  |
  | ------------------------------------------------- --------- |
  |  Le sexe masculin |  1,9 |  0,003 |  40% |  |
  | ------------------------------------------------- --------- |
  |  Le sexe féminin |  1.7 |  0,002 |  43% |  |
  \ ------------------------------------------------- --------- /

ou comme suit: - les agents utilisateurs graphiques:

Une table avec des cellules fusionnées

11.2 Éléments de la tabulation

11.2.1 Element TABLE

  <L'ELEMENT! TABLE déclaration - -
  (CAPTION, (COL * |?? COLGROUP *), THEAD, TFOOT, TBODY +)>
 <ATTLIST TABLE - Table -
  % attrs;
  - % Coreattrs , % i18n , % events -
  le résumé % du texte;
  #IMPLIED - Objet / Structure pour la sortie de la parole -
  la largeur % de la longueur;
  #IMPLIED - Largeur de table -
  frontière % des pixels;
  #IMPLIED - L'épaisseur de la bordure autour de la table -
  cadre % TFrame;
  #IMPLIED - Quelles parties de châssis pour être générés -
  les règles % Trulès;
  #IMPLIED - Décisions entre les lignes et colonnes -
  CellSpacing % de la longueur;
  #IMPLIED - Espacement entre les cellules -
  cellpadding % de la longueur;
  #IMPLIED - Espacement dans les cellules -
  >

Balise de début: obligatoire, balise fermante: obligatoire

les définitions d' attributs

le résumé = texte [CS]
Un résumé de l'objectif et de la structure de la table pour les agents utilisateurs qui effectuent la production pour les médias non-visuels tels que des synthétiseurs vocaux, ou alphabet Broglie.
la align = left | center | droit [CI]
Obsolète. Cet attribut spécifie la position de la table par rapport au document. Les valeurs valides sont:
  • gauche: Le tableau sur le côté gauche du document.
  • Centre: La table est au centre du document.
  • droite: Les tables stockées dans la partie droite du document.
la largeur = longueur [CN]
Cet attribut spécifie la largeur désirée de l'ensemble de la table et est destiné à des objets utilisateur visuels. Si la valeur indiquée en pourcentage signifie pourcentage de l'espace horizontal disponible. Si la largeur est pas spécifié, il est déterminé par l'agent utilisateur.

Element TABLE contient tous les autres éléments qui définissent la ligne d' en- tête, le contenu et la mise en forme.

La liste suivante décrit les opérations qu'un utilisateur peut effectuer avec la génération de table de l'agent:

  • Donner à l'utilisateur table d'information . Les auteurs doivent fournir un résumé du contenu et de la structure de la table, aux personnes qui travaillent avec les agents utilisateurs non-visuels peut mieux le comprendre.
  • Générer une légende, si elle est définie.
  • Génération de l'en-tête de la table supérieure, si elle est définie. Génération de l'en-tête inférieure, si elle est définie. Les agents utilisateurs doivent savoir où vous voulez générer les en-têtes supérieure et inférieure. Par exemple, si les moyens de sortie est divisé en pages, les agents utilisateurs peuvent mettre le titre en haut en haut de chaque page, et le bas - au fond. De même, si l'agent utilisateur fournit un mécanisme pour faire défiler à travers les rangées, le collecteur supérieur peut être affichée dans la partie supérieure de la zone de défilement et de la partie inférieure - vers le bas.
  • Calculer le nombre de colonnes dans la table. Rappelez - vous que le nombre de lignes de la table est le nombre d'éléments de la TR , contenues dans l'élément CREATE TABLE .
  • Le regroupement des colonnes, conformément aux spécifications des groupes de colonnes .
  • génération progressive des cellules et des colonnes de regroupement dans les collecteurs supérieur et inférieur. Les agents utilisateurs visuels doivent formater la table en fonction d'attributs HTML et les spécifications de feuille de style.

HTML modèle de table est conçu de telle sorte que les utilisateurs en utilisant les agents de l' auteur pourraient générer la table successivement ( par exemple, lors de la réception des lignes de la table), au lieu d'attendre la réception de la totalité de la table avant la génération.

Pour les agents utilisateurs peuvent formater une table en un seul passage, les auteurs doivent dire à l'agent utilisateur les informations suivantes:

Plus précisément, un agent utilisateur peut générer une table en une seule passe lorsque les largeurs de colonnes spécifiées en utilisant une combinaison d'éléments COLGROUP et le COL . Si une colonne contient la largeur relative ou la largeur en pour cent (voir. Section sur le calcul de la largeur des colonnes ), les auteurs doivent également spécifier la largeur de la table elle - même.

table Destination  

La direction de la table soit héritée (la direction par défaut de gauche à droite) ou défini attribut dir élément CREATE TABLE .

Pour les tables, dont la direction de gauche à droite, la colonne zéro est sur la gauche, et une chaîne vide - à partir du haut. Pour les tables, la direction de laquelle le droit à la gauche, la colonne zéro est sur la droite, et une chaîne vide - à partir du haut.

Si l'agent utilisateur attribue des cellules supplémentaires à une ligne (voir. Section sur le calcul du nombre de colonnes dans le tableau ), les cellules de lignes supplémentaires sont ajoutées à la table sur la droite pour les tables avec la direction de gauche à droite et de la gauche pour les tables qui ont le sens de droite à gauche.

Notez que la déclaration TABLE - le seul élément pour lequel l'attribut dir attire l'ordre visuel des colonnes; Vous ne pouvez pas modifier l'ordre d'une seule rangée ( TR ) ou un groupe de colonnes ( le COLGROUP ).

Si l'élément TABLE attribut défini dir , elle affecte aussi le sens du texte dans les cellules du tableau (depuis attribut dir hérité par des éléments de niveau bloc).

Pour définir une table avec de droite à gauche, définissez l'attribut dir suit:

  <TABLE dir = "RTL">
 ... Continuation de la table ... </ TABLE>

La direction du texte dans les cellules individuelles peut être modifiée en définissant l'attribut dir pour l'élément qui définit la cellule. En savoir plus sur les questions, voir le sens du texte. Dans la section sur le texte bidirectionnel .

11.2.2 tables: légendes élément CAPTION

  <L'ELEMENT! Le CAPTION - - ( % de la ligne; ) * - caption Le tableau ->
 <ENTITY% CAlignez "(top | bottom | left | right)"!>
 <! ATTLIST CAPTION
  % attrs;
  - % Coreattrs , % i18n , % events -
  >

Balise de début: obligatoire, balise fermante: obligatoire

les définitions d' attributs

la align = top | bottom | left | right [CI]
Non recommandé. Pour les agents utilisateurs visuels, cet attribut spécifie la position de la légende par rapport à la table. Les valeurs possibles sont:
  • top: légende en haut de la table. Cette valeur est utilisée par défaut.
  • en bas: la légende au bas du tableau.
  • gauche: légende à la gauche de la table.
  • droite: légende à droite de la table.

Si l'élément CAPTION présente, son texte devrait décrire le sujet de la table. Element CAPTION peut être placé que immédiatement après la balise de début CREATE TABLE . Element TABLE peut comprendre un seul élément de la CAPTION .

Les agents utilisateurs visuels permettent aux voyants de saisir rapidement la structure des en-têtes de table et de la légende. La conséquence de ceci est que les sous-titres ne seront pas coïncider avec une brève description de l'objet et la table en termes de la structure des personnes qui utilisent les agents utilisateurs non-visuels.

Ainsi, nous devons prendre soin de fournir plus d' informations sur l'objet et la structure de la table en utilisant l'attribut résumé élément CREATE TABLE . Ceci est particulièrement important pour les tables sans légende. L'exemple ci - dessous montre l'utilisation de l' attribut le résumé .

Les agents utilisateurs visuels devraient éviter l' écrêtage une partie de la table, y compris la légende Le, sauf accordé un moyen d'accès à toutes les parties, par exemple, par le défilement horizontal ou vertical. Nous recommandons que le texte de la légende est divisé de manière à avoir la même largeur que la table. (Voir. Aussi la section sur les algorithmes de mise en page recommandées .)

11.2.3 groupes Row: éléments THEAD , TFOOT, et TBODY

  <L'ELEMENT! THEAD - A propos de (TR) + - tête de table ->
 <L'ELEMENT! TFOOT, - A propos de (TR) + - l' en- tête de table inférieure ->

Balise de début: requise, Balise de fin: en option

  <L'ELEMENT! TBODY OO (TR) + - le corps de la table ->

Balise de début: optionnelle, Balise de fin: en option

  <ATTLIST! (THEAD | TBODY | TFOOT) - Section de la table -
  % attrs;
  - % Coreattrs , % i18n , % events -
  % Cellhalign;
  - Alignement horizontal dans les cellules -
  % Cellvalign;
  - Alignement vertical dans les cellules -
  >

Les lignes de tableau peuvent être regroupés dans les titres, les pieds de page et une ou plusieurs sections de corps de table utilisant des éléments THEAD , TFOOT, et TBODY respectivement. Cette unité permet aux agents utilisateurs pour soutenir le défilement du corps de table, quel que soit l'en-tête. Lors de l'impression de longues tables, les informations d'en-tête peut être répétée sur chaque page sur laquelle il y a des tables de données.

Titres table doit contenir des informations sur les colonnes de la table. Le corps de la table doit contenir des rangées de tables de données.

Si les éléments THEAD , TFOOT, et TBODY présents, chacun d'eux contient un groupe de lignes. Chaque groupe de lignes doit contenir au moins une rangée, définie par l'élément de la TR .

Cet exemple illustre l'ordre et la structure d'en-têtes de table, les pieds et le corps.

  <TABLE>
 <THEAD>
  <TR> ... tête ... </ THEAD>

 <TFOOT>
  <TR> ... l' en- tête basse ... </ TFOOT>

 <TBODY>
  <TR> ... la première ligne du bloc de données 1 ... <TR> ... la deuxième ligne du bloc de données 1 ... </ TBODY>

 <TBODY>
  <TR> ... le premier bloc de la ligne de données 2 ... <TR> ... la deuxième unité de ligne de données 2 ... <TR> ... troisième rangée de bloc de données 2 ... </ TBODY>

 </ TABLE>

Element TFOOT doit être placé avant l'élément TBODY dans la détermination de la déclaration de TABLE , de sorte que les agents utilisateurs peuvent générer l' en- tête inférieure pour donner à tous (éventuellement) de nombreuses lignes de données. Ce qui suit est un résumé des balises et des balises obligatoires qui peuvent être omises:

  • Balise TBODY toujours obligatoire, à moins que la table ne contient pas un seul corps sans les en- têtes supérieure et inférieure. Fin tag TBODY peut toujours être omis.
  • Les tags de base éléments pour THEAD et TFOOT nécessaires si la table contient les en- têtes supérieure et inférieure, mais les balises de fin correspondantes peuvent être omis.

Le correspondant agent utilisateur spécification parsing doit obéir à ces règles pour des raisons de compatibilité avec les versions précédentes.

Le tableau de l'exemple précédent peut être réduit en enlevant l'étiquette de fin, comme indiqué ci-dessous:

  <TABLE>
 <THEAD>
  <TR> ... title top ... <TFOOT>

  <TR> ... le bas - tête ... <TBODY>

  <TR> ... la première ligne du bloc de données 1 ... <TR> ... la deuxième ligne du bloc de données 1 ... <TBODY>

  <TR> ... le premier bloc de la ligne de données 2 ... <TR> ... la deuxième unité de ligne de données 2 ... <TR> ... troisième rangée de bloc de données 2 ... </ TABLE>

Sections THEAD , TFOOT, et TBODY doivent contenir le même nombre de colonnes.

11.2.4 groupes Colonne: les éléments de COLGROUP et COL

groupes de colonnes vous permettent de créer des divisions structurelles au sein d' une table. Les auteurs peuvent mettre en évidence cette structure à travers des feuilles ou des attributs de HTML de style (par exemple, attribuer des règles pour l'élément TABLE statement ). Exemple représentation visuelle des colonnes cm. Dans l'exemple de tableau .

Le tableau peut contenir un seul groupe de colonnes implicite (élément COLGROUP ne partage pas les colonnes) ou un certain nombre de groupes de colonnes explicites (dont chacun est séparé par une instance de l'élément COLGROUP ).

Element COL permet aux auteurs d'utiliser les mêmes attributs dans des colonnes différentes , sans l' aide de groupes structurels. élément "span" de la COL - est le nombre de colonnes en utilisant les attributs de cet élément.

élément COLGROUP  

  <L'ELEMENT! Le COLGROUP - A propos de (col) * - un groupe de colonnes d'une table ->
 <! ATTLIST COLGROUP
  % attrs;
  - % Coreattrs , % l'i18n , % events - durée NUMÉRO 1 - nombre de colonnes dans le groupe, la valeur par défaut - la largeur % MultiLength;
  #IMPLIED - La largeur des éléments imbriqués COL, la valeur par défaut - % cellhalign;
  - L' alignement horizontal dans les cellules - % cellvalign;
  - Alignement vertical dans les cellules ->

Balise de début: requise, Balise de fin: en option

les définitions d' attributs

durée = nombre [CN]
L'attribut dont la valeur doit être un nombre entier supérieur à zéro, détermine le nombre de colonnes dans un groupe. Les valeurs sont les suivantes:
  • En l'absence de l'attribut enjambent chaque élément COLGROUP définit un groupe de colonnes consistant en une colonne unique.
  • Si l'attribut intervalle est réglé à n> 0, l'élément en cours COLGROUP définit un groupe contenant N colonnes.

Les agents utilisateurs doivent ignorer cet attribut si l'élément COLGROUP contient un ou plusieurs éléments de la COL .

la largeur = de multi-longueur [CN]

Cet attribut spécifie la largeur de chaque colonne dans le groupe actuel, la valeur par défaut. Outre les valeurs de pixel standard, et le pourcentage de valeurs relatives, cet attribut peut être utilisé une forme particulière de "* 0" (zéro par un astérisque), ce qui signifie que la largeur de chaque colonne dans le groupe devrait être le minimum nécessaire pour recevoir le contenu de la colonne. L'implication est que le contenu de la colonne connus avant peuvent calculer correctement sa largeur. Les auteurs doivent être conscients que l'utilisation de "0 *" ne sera pas permettre à l'agent utilisateur de générer la table séquentiellement.

Cet attribut est ignoré pour toute colonne du groupe auquel la valeur d'attribut de la largeur spécifiée dans l'élément du COL .

Element COLGROUP crée un groupe de colonnes explicite. Le nombre de colonnes dans un groupe peut être indiqué de deux façons mutuellement exclusives:

  1. Attribut durée élément (par défaut - 1) spécifie le nombre de colonnes dans le groupe.
  2. Chaque élément du COL dans le COLGROUP représente une ou plusieurs colonnes dans le groupe.

L'avantage d'utiliser l'attribut durée est que les auteurs peuvent regrouper les informations sur la largeur de la colonne. Ainsi, si la table indique quarante colonnes, dont chacune a une largeur de 20 pixels, il est plus facile d'écrire:

  <Span class = COLGROUP largeur "40" = "20">
  </ COLGROUP>

quelle

  <COLGROUP>
  <Largeur COL = "20">
  <Largeur COL = "20">
  ... quarante éléments COL ... </ COLGROUP>

Si vous devez sélectionner la colonne (par exemple, pour obtenir des informations de style, pour spécifier des informations de largeur, etc.) dans un groupe, les auteurs doivent identifier cette colonne à l'aide de l'élément du COL . Ainsi, pour appliquer des informations de style particulier à la dernière colonne du tableau précédent, nous distinguons comme suit:

  <Largeur COLGROUP = "20">
  <Span class = COL "39">
  <COL id = "Format-me-spécialement">
  </ COLGROUP>

Attribut largeur élément COLGROUP hérite quarante colonnes. Le premier élément COL se réfère aux 39 premières colonnes (faisant rien de spécial pour eux) et la seconde affecte la valeur de id quarantième colonne de sorte qu'il peut être référencé dans stylesheets.

Le tableau dans cet exemple comprend deux groupes de colonne. Le premier groupe comprend 10 colonnes, la seconde - 5. La largeur par défaut pour chaque colonne dans le premier groupe - 50 pixels. La largeur de chaque colonne dans le deuxième groupe - le minimum requis pour cette colonne.

  <TABLE>
 <Span class = COLGROUP largeur "10" = "50">
 <Span class = COLGROUP largeur "5" = "0 *">
 <THEAD>
 <TR> <TD> ... < / TABLE>

élément COL  

  <L'ELEMENT! Le COL - A propos de VIDE La - colonne de la table ->
 <ATTLIST COL - propriétés du groupe et de colonne - % attrs;
  - % Coreattrs , % i18n , % events - durée NUMÉRO 1 - attributs COL affectent N colonnes - la largeur % MultiLength;
  #IMPLIED - Largeur de la colonne - % cellhalign;
  - L' alignement horizontal dans les cellules - % cellvalign;
  - Alignement vertical dans les cellules ->

Balise de début: requise, Balise de fin: interdite

les définitions d' attributs

durée = nombre [CN]
Cet attribut, dont la valeur doit être un entier supérieur à zéro, indique le nombre de colonnes, "enjambé" élément du COL ; attributs d' élément COL applique à toutes les colonnes qu'il englobe. La valeur par défaut pour cet attribut - 1 (ie, l'élément COL est une colonne). Si l'attribut durée est fixée à N> 1, l'élément courant attributs COL appliquer à la N-1 colonne suivante.
la largeur = de multi-longueur [CN]
Cet attribut spécifie la largeur de chaque colonne, enjambé l'élément courant de la CLO , la valeur par défaut. Il a la même valeur que l'attribut largeur élément COLGROUP et a préséance sur elle.

Element COL permet aux auteurs de groupe attribuent des définitions pour les colonnes de la table. Attribut COL ne pas grouper les colonnes structurellement - le rôle joué par l'élément le COLGROUP . Les éléments COL sont vides et ne servent qu'à maintenir les attributs. Ils peuvent être à l' intérieur ou à l' extérieur du groupe de colonnes explicite ( à savoir, élément COLGROUP ).

Attribut largeur pour l'élément COL signifie la largeur de chaque colonne dans l'élément span.

Compter le nombre de colonnes dans le tableau  

Il existe deux façons de déterminer le nombre de colonnes dans la table (par ordre de priorité):

  1. Si l'élément TABLE comprend des éléments COLGROUP ou le COL , les agents utilisateurs doivent calculer le nombre de colonnes en additionnant les chiffres suivants:
    • Pour chaque élément de la COL - la valeur de son attribut durée (1 par défaut).
    • Pour chaque élément de la COLGROUP , contenant au moins un élément de l'COL - attribut ignoré durée élément du COLGROUP . Pour chaque élément COL effectuer le calcul de l' étape 1.
    • Pour chaque élément vide du COLGROUP - la valeur de son attribut durée (1 par défaut).
  2. Dans le cas contraire, si l'élément TABLE ne contient pas d' éléments COLGROUP ou COL , les agents utilisateurs afin de déterminer le nombre de colonnes du fait qu'il est nécessaire que les lignes. Le nombre de colonnes est égal au nombre de colonnes requises conformément à la plupart des colonnes, y compris les cellules, sur plusieurs colonnes. Pour chaque ligne, le nombre de colonnes dans laquelle l'extrémité inférieure de cette ligne sera complétée par des cellules vides. "Fin" chaîne dépend de la direction de la table .

Si la table contient des éléments colgroup ou le COL , et ce sont deux façons de rendement de comptage des résultats différents, c'est une erreur.

Lorsque l'agent utilisateur a calculé le nombre de colonnes dans le tableau, il peut les regrouper en groupes de colonnes.

Par exemple, pour chacun des tableaux ci-après, les deux méthodes de comptage du nombre de colonnes à trois colonnes. Les trois premiers tableaux peuvent être générés de manière séquentielle.

  <TABLE>
 <COLGROUP span class = "3"> </ COLGROUP>
 <TR> <TD> ... ... en ligne ... </ TABLE>

 <TABLE>
 <COLGROUP>
 <COL>
 <COL durée = "2">
 </ COLGROUP>
 <TR> <TD> ... ... en ligne ... </ TABLE>

 <TABLE>
 <COLGROUP>
 <COL>
 </ COLGROUP>
 <COLGROUP durée = "2">
 <TR> <TD> ... ... en ligne ... </ TABLE>

 <TABLE>
 <TR>
  <TD> <TD> <TD>
 </ TR>
 </ TABLE>

Comptage la largeur des colonnes  

Les auteurs peuvent spécifier la largeur des colonnes de trois façons:

fixé
La spécification d' une largeur fixe est donnée en pixels (par exemple, width = "30"). Utiliser une largeur fixe permet l'utilisation d'une génération cohérente.
pourcentage
Pourcentage de largeur de désignation (par exemple, largeur = "20%") signifie que le pourcentage de l'espace horizontal disponible pour la table (entre les marges droite et gauche, dont les flotteurs) et courant. Rappelez-vous que cet espace ne dépend pas de la table elle-même, afin de préciser la largeur en pourcentage peut être utilisé pour générer cohérente.
proportionnel
Proportionnelle à la largeur du billet (par exemple, largeur = "3 *") signifie que le nombre de parties de l'espace horizontal requis pour la table. Si la largeur de la table est déterminée comme une valeur fixe ( en utilisant l'élément largeur attribut TABLE ), les agents utilisateurs peuvent séquentiellement générer le tableau indiquant la proportionnelle et la largeur.

Toutefois, si la largeur de la table ne sont pas fixés, les agents utilisateurs doivent recevoir toutes les données de la table avant de pouvoir déterminer l'espace horizontal requis pour la table. Seulement alors est l'espace peut être divisé entre les colonnes, ce qui est proportionnelle à la largeur indiquée.

Si l'auteur ne précise pas les informations de largeur de colonne, l'agent utilisateur ne sera pas capable de formater la table séquentiellement, comme il devra attendre que toutes les données de colonne pour déterminer sa largeur.

Si la largeur de la colonne spécifiée est pas suffisante pour recevoir le contenu d'une cellule, les agents utilisateurs peuvent reformater la table.

Le tableau dans cet exemple comprend six colonnes. Le premier appartient à un groupe de colonnes explicite. Les trois suivants forment le premier groupe de colonnes explicite et les deux derniers - le deuxième groupe de colonnes explicite. Ce tableau ne peut pas être formaté de manière cohérente, car elle contient proportionnelle largeur de la colonne et la valeur de l'attribut de largeur pour l'élément TABLE est spécifiée.

Quand un agent utilisateur (visuel) reçoit les tables de données d'espace horizontal disponible sera distribuée par l'agent utilisateur de la manière suivante: Tout d'abord l'agent utilisateur va distribuer 30 pixels sur la première et la deuxième colonne. Ensuite, il sera réservé un minimum d'espace requis pour la troisième colonne. L'espace horizontal restant est divisé en six parties égales (depuis le 2 * + 1 + 3 * = 6 pièces). La quatrième colonne (2 *) aura deux telles pièces, cinquième (1 *) - one, et la sixième - (* 3) trois.

 
 <TABLE>
 <COLGROUP>
  <Largeur COL = "30">
 <COLGROUP>
  <Largeur COL = "30">
  <Largeur COL = "0 *">
  <Largeur COL = "2 *">
 <COLGROUP align = "center">
  <Largeur COL = "1 *">
  <Largeur COL = "3 *" align = "char" char = ":">
 <THEAD>
 <TR> <TD> ... ... en ligne ... </ TABLE>

Pour attribuer aligner dans le deuxième groupe de colonnes, nous avons fixé la valeur du «centre». Toutes les cellules de chaque colonne du groupe hériteront cette valeur, mais peuvent la remplacer. En fait, le dernier élément COL fait justement cela, car il indique que chaque cellule de la colonne, où il opère, est aligné avec le symbole ":".

Dans le tableau suivant les spécifications de largeur de colonne permettent à l'agent utilisateur de formater la table dans l'ordre:

 
 <Table width = "200">
 <Span class = COLGROUP largeur "10" = "15">
 <Largeur COLGROUP = "*">
  <COL id = "avant-dernière colonne">
  <COL id = "dernière colonne">
 <THEAD>
 <TR> <TD> ... ... en ligne ... </ TABLE>

Les dix premières colonnes ont une largeur de 15 pixels chacun. Les deux dernières colonnes sont préparées selon moitié des 50 pixels restants. Notez que l'élément COL est agencé de telle sorte que la valeur de l' identifiant peut être spécifiée pour que les deux dernières colonnes.

Remarque. Bien que l'attribut largeur élément TABLE est pas souhaitable, les auteurs recommandent que vous utilisez pour spécifier la largeur de la feuille de style.

11.2.5 Les lignes de tableau: élément TR

  <L'ELEMENT! Le TR - A propos de (TH | TD) + - Ligne de table ->
 <! ATTLIST TR - Ligne de table - % attrs;
  - % Coreattrs , % l'i18n , % events - % cellhalign;
  - L' alignement horizontal dans les cellules - % cellvalign;
  - Alignement vertical dans les cellules ->

Balise de début: requise, Balise de fin: en option

Éléments TR servent de conteneurs pour la rangée de cellules de tableau. La balise de fin peut être omise.

Ce tableau simple , se compose de trois lignes, dont chacun commence avec l'élément de TR :

  <Summary TABLE = "Ce tableau indique le calendrier des
  tasses de boissons au café chaque sénateur, le type de
  café (décaféiné ou régulier), et la présence de sucre. ">
 <CAPTION> Combien de tasses de boissons au café chaque sénateur </ CAPTION>
 <TR> ... barre de titre ... <TR> ... La première ligne de données ... <TR> ... Deuxième rangée de données ... ... le reste de la table ... </ TABLE>

11.2.6 cellules de tableau: éléments TH et TD

  <L'ELEMENT (! Le TH | TD - À propos de () flux%; ) * - tête de table cellule, cellule de données de table ->
 <! - Pour la plupart attribut tables de champ est plus simple que l'attribut axes ->
 <ENTITY% Scope "(ligne | col | rowgroup | colgroup)"!>
 <! - TH est utilisé pour les en-têtes, TD - données, mais pour les cellules, les employés et ainsi, et d'autres utilisent la TD ->
 <! ATTLIST (TH | TD) - l' en- tête de cellule de données - % attrs;
  - % Coreattrs , % l'i18n , % events - la abbr % du texte;
  #IMPLIED - Abréviation de tête cellulaire - Axis un CDATA #IMPLIED - groupes noms des en- têtes associés - Les en- têtes IDREFS #IMPLIED - liste des id pour les cellules d' en- tête - un champ % de la portée;
  #IMPLIED - Les cellules d' en- tête de la région - le rowspan NUMBER 1 - nombre de lignes, enjambé cellulaire - la colspan NUMBER 1 - nombre de colonnes, cellules enjambé - % cellhalign;
  - L' alignement horizontal dans les cellules - % cellvalign;
  - Alignement vertical dans les cellules -
  >

Balise de début: requise, Balise de fin: en option

les définitions d' attributs

Les en- têtes = IDREFS [CS]
Cet attribut spécifie une liste de cellules d'en-tête qui fournissent des informations d'en-tête de la cellule de données en cours. La valeur de cet attribut est une liste séparée par des espaces de noms de cellules; les noms des cellules doivent être données en utilisant l'attribut id . Les auteurs utilisent généralement les attributs en- têtes afin d'aider les agents utilisateurs non-visuels pour générer des cellules de données d' en- tête (par exemple, le titre prononcé avant de lire les données de la cellule), mais cet attribut peut également être utilisé en conjonction avec des feuilles de style. Voir. Attribuer également un champ d' application .
un champ d' application = nom de l' étendue [CI]
Cet attribut spécifie l'ensemble des cellules de données pour lesquelles les informations d'en-tête est donnée par la position actuelle. Cet attribut peut être utilisé à la place de l'attribut a href = "# tables.shtml adef- têtes" class = "noxref"> en- têtes, en particulier dans les tableaux simples. Si cet attribut est utilisé, il doit avoir une des opérations suivantes:
  • rangée: La cellule affiche les informations d' en- tête pour le reste de la ligne qui contient cette cellule (voir également la section. direction de tableaux ).
  • col: La cellule en cours est représentée par l'information d' en- tête pour le reste de la colonne qui contient cette cellule.
  • rowgroup: Dans la cellule présentée en - tête pour le reste du groupe de ligne qui contient cette cellule.
  • colgroup: Dans la cellule présentée en - tête pour le reste du groupe de colonnes qui contient cette cellule.
l'abbr = texte [CS]
Cet attribut doit être utilisé pour représenter la forme abrégée du contenu de la cellule; il peut être généré par l'agent utilisateur au moment opportun, au lieu du contenu de la cellule. Les noms abrégés doivent être courts, et les agents utilisateurs peuvent les répéter. Par exemple, un synthétiseur vocal peut générer un en-têtes abrégés relatifs à une cellule particulière avant de générer le contenu des cellules.
Axis = cdata [CI]
Cet attribut peut être utilisé à la place de la cellule dans les catégories conceptuelles qui peuvent être utilisées pour former des axes dans un espace à n dimensions. Les agents utilisateurs peuvent donner aux utilisateurs l'accès à ces catégories (par exemple, l'utilisateur peut demander à l'agent toutes les cellules appartenant à certaines catégories, l'agent utilisateur peut être sous la forme d'une table des matières, etc.). Voir. Dans la section sur les cellules catégoriser . La valeur de cet attribut est une liste de noms des catégories, séparées par des virgules.
le rowspan = nombre [CN]
Cet attribut spécifie le nombre de lignes, engendré par la cellule courante. La valeur par défaut est un ( "1"). Une valeur de zéro ( "0") signifie que la cellule couvre toutes les lignes de courant à la dernière ligne de la table.
le colspan = nombre [CN]
Cet attribut spécifie le nombre de colonnes, engendré par la cellule courante. La valeur par défaut est un ( "1"). Une valeur de zéro ( "0") signifie que la cellule couvre toutes les colonnes du courant à la dernière colonne du tableau.
nowrap [CI]
Non recommandé. Si cet attribut booléen est utilisé, il indique aux agents utilisateurs visuels pour désactiver la partition automatique du texte pour cette cellule. Pour diviser une chaîne au lieu de cet attribut doit être utilisé stylesheet . Remarque. une utilisation imprudente de cet attribut peut conduire au fait que les cellules seront très large.
la largeur = pixels [CN]
Non recommandé. Cet attribut fournit l'agent utilisateur à la largeur de la cellule recommandée.
hauteur = pixels [CN]
Non recommandé. Cet attribut fournit l'agent utilisateur à la hauteur de la cellule recommandée.

Les cellules de table peuvent contenir deux types d'informations: informations d' en- tête et données. Cette distinction permet aux agents utilisateurs de générer des en-têtes et des cellules de données de différentes manières, même en l'absence de feuilles de style. Par exemple, les agents utilisateurs visuels peuvent présenter le texte en-tête de la cellule en gras. synthétiseurs vocaux peuvent produire des informations en-tête voix.

Élément TH détermine la cellule qui contient des informations d' en- tête. Un agent utilisateur est disponible en deux parties de l'information d' en- tête: le contenu de l'élément TH et la valeur de l'attribut du abbr . Les agents utilisateurs doivent rendre le contenu d'une cellule ou d' attribuer la valeur du abbr . Pour les dispositifs visuels, ce dernier peut donner un sens si l'espace pour générer le contenu complet d'une cellule ne suffit pas. Pour les appareils non visuels abr peuvent être utilisés comme une abréviation pour les en- têtes de table quand ils sont générés, en même temps que le contenu des cellules auxquelles elles se rapportent.

Attributs têtes et champ d' application permettent également aux auteurs pour aider les agents utilisateurs non-visuels dans le traitement des informations d' en- tête. Pour plus d' informations et des exemples, voir. Dans la section sur les cellules de marquage pour les agents utilisateurs non-visuels .

Elément TD définit une cellule qui contient des données.

La cellule peut être vide (à savoir, ne contiennent pas de données).

Par exemple, le tableau suivant contient quatre colonnes de données, chaque colonne a un en-tête.

 <TABLE summary = "Ce tableau montre un graphique du nombre de tasses de boissons au café chaque sénateur, le type de café (décaféiné ou régulier), et la présence de sucre."> <CAPTION> Combien de tasses de boissons au café chaque sénateur </ CAPTION> <TR> <TH > Nom </ TH> <TH> plaques d'immatriculation </ TH> <TH> type de café </ TH> <TH> sucre? </ TH> <TR> <TD> T.  Sexton </ TD> <TD> 10 </ TD> <TD> Espresso </ TD> <TD> Non </ TD> <TR> <TD> J.  Dinnen </ TD> <TD> 5 </ TD> <TD> décaféiné </ TD> <TD> Oui </ TD> </ TABLE> 

Un agent utilisateur qui effectue la génération du terminal peut afficher comme suit:

  Nom Nombre de tasses de café Type de sucre?

 T. Sexton 10 Expresso Non
 J .. Dinnen 5 Déca Oui

Cellules, portée plusieurs lignes ou colonnes  

Les cellules peuvent couvrir plusieurs lignes ou colonnes. Le nombre de lignes ou de colonnes, la cellule enjambé est réglée avec les attributs rowspan et colspan éléments TH et les TD .

Dans cette définition de la table, nous précisons que la cellule de la quatrième ligne de la deuxième colonne couvrent tous les trois colonnes, y compris l'actuel.

  <Table border = "1">
 <CAPTION> Combien de tasses de boissons au café chaque sénateur </ CAPTION>
 <TR> <TH> Nom <TH> Plaques d'immatriculation <TH> Type café <TH> Sucre?
 <TR> <TD> T.  Sexton <TD> 10 <TD> Espresso <TD> Non
 <TR> <TD> J.  Dinnen <TD> 5 <TD> décaféiné <TD> Oui
 <TR> <TD> A.  Soria <TD colspan = "3"> <em> Aucune donnée </ em>
 </ TABLE>

Au terminal de cette table peut être générée comme suit:

 Combien de tasses de boissons au café chaque sénateur -------------------------------------------- - |  Nom | Nombre de tasses | Type de café | sucre? |  ---------------------------------------------- | T.  Sexton | 10 | espresso | No |  ---------------------------------------------- | J.  Dinnen | 5 | décaféiné | Oui |  ---------------------------------------------- | A.  Soria | Aucune information |  ---------------------------------------------- 

L'exemple qui suit (en utilisant les limites du tableau), en tant que détermination de cellules, couvrent plusieurs lignes ou colonnes, les définitions suivantes affectent les cellules. Considérons la définition de tableau suivant:

  <Table border = "1">
 <TR> <TD> 1 <TD rowspan = "2"> 2 <TD> 3
 <TR> <TD> 4 <TD> 6
 <TR> <TD> 7 <TD> 8 <TD> 9
 </ TABLE>

En tant que cellule "2" couvre les première et deuxième lignes, la définition de la deuxième ligne sera prise en compte. Ainsi, le deuxième élément TD en deuxième ligne définit en fait la troisième ligne de cellule. Visuellement la table terminal peut être généré comme suit:

  -------------
 |  1 |  2 |  3 | 
 ---- |  | ----
 |  4 |  |  6 |
 ---- | --- | ----
 |  7 |  8 |  9 |
 -------------

et un agent utilisateur graphique peut présenter comme suit:

Une table avec rowspan = 2

Rappelez - vous que si l'élément est la TD , la définition de la cellule "6" est omis, les agents utilisateurs ajoutent supplémentaire cellule vide pour terminer la ligne.

De même, pour déterminer le tableau suivant:

  <Table border = "1">
 <TR> <TD> 1 <TD> 2 <TD> 3
 <TR> <TD colspan = "2"> 4 <TD> 6
 <TR> <TD> 7 <TD> 8 <TD> 9
 </ TABLE>

cellule "4" couvre deux colonnes, de sorte que le deuxième élément TD dans la rangée définit en fait la troisième cellule ( «6»):

  -------------
 |  1 |  2 |  3 | 
 -------- | ----
 |  4 |  6 |
 -------- | ----
 |  7 |  8 |  9 |
 -------------

Un agent utilisateur graphique peut représenter cela comme suit:

Une table avec colspan = 2

Définition de cellules qui se chevauchent est une erreur. Les agents utilisateurs peuvent gérer différemment cette erreur (par exemple, ils peuvent générer différents ces tables).

L'exemple suivant illustre l'utilisation d'un malade, comme il est possible de créer des cellules qui se chevauchent. Dans ce tableau, la cellule "5" couvre les deux lignes et cellules "7" étend les deux colonnes afin qu'ils utilisent tous les deux la cellule entre "7" et "9":

  <Table border = "1">
 <TR> <TD> 1 <TD> 2 <TD> 3
 <TR> <TD> 4 <TD rowspan = "2"> 5 <TD> 6
 <TR> <TD colspan = "2"> 7 <TD> 9
 </ TABLE>

11.3 tables de mise en forme des agents utilisateurs visuels

Remarque. Les sections suivantes décrivent la table des attributs HTML qui concernent la mise en forme visuelle. Bien que les feuilles de style offrent les meilleures capacités de gestion de table de mise en forme visuelle, tout en écrivant cette spécification dans [CSS1] il ne dispose pas de mécanismes pour contrôler tous les aspects de la mise en forme visuelle des tables.

En HTML 4.0, il existe des mécanismes de contrôle:

11.3.1 frontières et des règles

Les attributs suivants affectent le personnel interne et les règles internes de la table.

les définitions d' attributs

frame = vide | ci - dessus | le ci - dessous | hsides | lhs | les rhs | vsides | boîte | frontière [CI]
Cet attribut spécifie les côtés autour de la table, seront trame visible. Les valeurs possibles sont:
  • vide: pas de parties. Cette valeur est utilisée par défaut.
  • ci - dessus: seule la partie supérieure.
  • ci - dessous: Seule la partie inférieure.
  • hsides: Seule la partie supérieure et inférieure.
  • vsides: Seuls les côtés gauche et droit.
  • lhs: Seul le côté gauche.
  • rhs: Seule la partie droite.
  • boîte: Toutes les quatre parties.
  • border: Tous les quatre parties.
les règles = none | Les groupes | lignes | cols | all [CI]
Cet attribut spécifie quelles règles apparaissent entre les cellules. Génération de règles dépend de l'agent utilisateur. Les valeurs possibles sont:
  • none: Pas de règles. Cette valeur est utilisée par défaut.
  • groupes: les règles sont affichées uniquement entre les lignes de groupes (voir. THEAD , TFOOT, et TBODY ) et les groupes de colonnes (voir. le COLGROUP et le COL ).
  • lignes: Les règles sont affichées uniquement entre les lignes.
  • Règles: cols sont affichés uniquement entre les colonnes.
  • tous: les règles apparaissent entre les lignes et les colonnes.
frontière = pixels [CN]
Cet attribut spécifie la largeur (en pixels seulement) du cadre autour d'une table (pour plus d'informations sur cet attribut. Voir la note ci-dessous).

Pour simplifier, les différences de cellules du tableau, nous pouvons définir l'attribut border élément CREATE TABLE . Prenons l'exemple précédent:

  <Table border = "1" 
  summary = "Ce tableau contient des données
  sur le nombre de tasses de café consommée par chaque 
  sénateur, le type de café (décaféiné ou régulier) 
  et la présence de sucre. ">
 <CAPTION> Combien de tasses de boissons au café chaque sénateur </ CAPTION>
 <TR>
  <TH> Nom </ TH>
  <TH> Plaques d'immatriculation </ TH>
  <TH> Type de café </ TH>
  <TH> Sucre? </ TH>
 <TR>
  <TD> T.  </ TD> Sexton
  <TD> 10 </ TD>
  <TD> Espresso </ TD>
  <TD> Non </ TD>
 <TR>
  <TD> J.  </ TD> Dinnen
  <TD> 5 </ TD>
  <TD> décaféiné </ TD>
  <TD> Oui </ TD>
 </ TABLE>

Dans cet exemple, l'agent utilisateur doit afficher une largeur de bordure de cinq pixels à gauche et à droite de la table entre les colonnes et les règles.

  <table border = "5" frame = "vsides" règles = "cols">
 <TR> <TD> 1 <TD> 2 <TD> 3
 <TR> <TD> 4 <TD> 5 <TD> 6
 <TR> <TD> 7 <TD> 8 <TD> 9
 </ TABLE>

Les paramètres suivants doivent être traités par les agents utilisateurs pour la compatibilité avec les versions précédentes.

  • Réglage frontière = "0" implique frame = "vide" et, sauf indication contraire, les règles = "none".
  • D' autres valeurs de la frontière impliquent trame = "border" et, sauf indication contraire, les règles = "all".
  • La valeur «frontière» dans la balise de début de l' élément TABLE doit être interprété comme une valeur d'attribut frame . On suppose que les règles = "all" est utilisé, et une valeur par défaut (non-zéro) pour l'attribut frontière .

Par exemple, ces définitions sont équivalentes:

  <Table border = "2">
 <table border = "2" frame = règles "frontière" = "all">

comme suit:

  <TABLE border>
 <Frame TABLE = règles "frontière" = "all">

Remarque. Attribut frontière définit également une cartographie de la frontière pour les éléments OBJECT et images IMG , mais prend différentes valeurs de ces éléments.

11.3.2 horizontal et l' alignement vertical

Pour divers éléments de table, vous pouvez définir les attributs suivants (voir. Leurs définitions).

  <! - Les attributs d'alignement horizontal du contenu des cellules ->
 <! L'ENTITÉ% cellhalign " l'alignement (left | center | right | justifier | un char) #IMPLIED char % du caractère; #IMPLIED - caractères de mise à niveau, tels que = un char ':' - charoff est % la longueur; #IMPLIED - le caractère d'alignement tiret - "> <! - attributs d'alignement vertical du contenu des cellules -> <ENTITY% cellvalign!" valign (top | milieu | bas | la ligne de base) #IMPLIED ">

les définitions d' attributs

la align = left | center | right | justifier | char [CI]
Cet attribut spécifie l'alignement des données et la justification du texte dans une cellule. Les valeurs possibles sont:
  • gauche: données de gauche alignement / justifier le texte à gauche. Cette valeur est utilisée par défaut.
  • Centre: Centre de données Alignement / justification du texte dans le milieu. Ceci est la valeur par défaut dans l'en-tête de table.
  • droite: données Aligner justifie droite / droite du texte.
  • justifier: Justification sur les deux bords.
  • omble: Aligner le texte autour d' un caractère spécifié.
valign = top | milieu | bas | la ligne de base [CI]
Cet attribut indique la position verticale des données dans la cellule. Les valeurs possibles sont:
  • top: Ces cellules sont décalées vers le haut.
  • moyenne: les données de cellule est centré verticalement. Cette valeur est utilisée par défaut.
  • en bas: Les données de la cellule sont déplacés vers le bas.
  • référence: Toutes les lignées cellulaires dans lesquelles la cellule, pour lesquels l'attribut valign est défini, le texte doit être disposé de telle sorte que la première ligne est prévue sur la ligne de base commune à toutes les cellules de la ligne. Cette restriction ne concerne pas les lignes suivantes de texte dans la cellule.
char = caractère [CN]
Cet attribut spécifie un caractère unique dans l'extrait de texte qui sert d'axe pour l'alignement. La valeur par défaut pour cet attribut est utilisé , le caractère décimal de point pour la langue courante, établie conformément à l'attribut lang (par exemple, le point ( «.») En anglais, et la virgule ( ",") dans la version française). Les agents utilisateurs ne sont pas nécessaires pour soutenir cet attribut.
charoff est = longueur [CN]
Si cet attribut est défini, il spécifie le retrait de la première instance du caractère d'alignement sur chaque ligne. Si les bâtiments sont pas de caractère d'alignement, elle est déplacée horizontalement pour se terminer à la position d'alignement.

Si la mise en place de l'attribut caractère d'alignement de décalage est utilisé charoff est , la direction de déplacement est déterminée par la direction de texte actuel (défini par l'attribut de la dir ). Dans le texte de gauche à droite (par défaut), le décalage est produit à partir de la marge de gauche. Dans les textes, de droite à gauche, le changement est fait à partir de la marge de droite. Les agents utilisateurs ne sont pas nécessaires pour soutenir cet attribut.

Dans cet exemple, les unités monétaires sont alignés sur la virgule. Nous avons mis explicitement l'alignement du symbole ".".

  <Table border = "1">
 <COLGROUP>
 <COL> <COL align = "char" char = ".">
 <THEAD>
 <TR> <TH> Légumes <TH> Prix par kg
 <TBODY>
 <TR> <TD> Laitue <TD> 1 $
 <TR> <TD> carottes argent <TD> 10,50 $
 <TR> <TD> navets d'or <TD> 100.30 $
 </ TABLE>

Le tableau formaté peut ressembler à ceci:

  ------------------------------
 |  Légumes | Prix par kg |
 | -------------- | ------------- |
 | Laitue |  $ 1 |
 | -------------- | ------------- |
 | carottes Argent |  10,50 $ |
 | -------------- | ------------- |
 | navets d'or |  100,30 $ |
 ------------------------------

Si la cellule contient des copies multiples de l'alignement des caractères spécifiés dans l'attribut d' un caractère , et le contenu de la cellule est transférée à l'autre ligne, le comportement de l' agent utilisateur est indéfini. Par conséquent, les auteurs doivent utiliser soigneusement l'attribut d' un caractère .

Remarque. Les agents utilisateurs visuels génèrent habituellement des éléments TH alignés verticalement et horizontalement dans le centre en utilisant une police de caractères gras.

Héritage des options d'alignement  

L'alignement du contenu des cellules peut être spécifié pour chaque cellule ou héritée d'un des composants de niveau supérieur comme la ligne, la colonne ou la table elle-même.

La priorité (du plus haut au plus bas) attribuent l'alignement , char et charoff suivant:

  1. Un attribut d' alignement défini pour l'élément dans les cellules de données (par exemple, P ).
  2. Un attribut d' alignement défini dans la cellule ( TH et TD ).
  3. Un attribut d' alignement défini dans l'élément de regroupement de colonnes ( COL et l'COLGROUP ). Si la cellule est une partie de l'espace de quelques colonnes, la propriété d'alignement est héritée de la définition de la cellule au début de la portée.
  4. Un attribut d' alignement défini dans la ou les lignes cellule groupes ( le TR , THEAD , TFOOT, et TBODY ). Si la cellule est une partie de l'espace de quelques lignes, la propriété d'alignement est héritée de la définition de la cellule au début de la portée.
  5. Un attribut d'alignement défini dans la table ( TABLE ).
  6. L'alignement par défaut.

La priorité (du plus haut au plus bas) attribut valign (ainsi que l'autre a hérité des attributs lang , dir , et le style ) est le suivant:

  1. Attribut fixé pour le produit dans les cellules de données (par exemple, P ).
  2. Un attribut défini sur une cellule ( TH et TD ).
  3. Attribut défini sur une ligne ou d'un groupement de lignes ( TR , THEAD , TFOOT, et TBODY ). Si la cellule est une partie de l'espace de plusieurs lignes, la valeur d'attribut est héritée de la définition de la cellule au début de la portée.
  4. Un attribut défini sur un élément de regroupement de colonnes ( COL et l'COLGROUP ). Si la cellule fait partie de la portée des nombreuses colonnes, la valeur d'attribut est héritée de la définition de la cellule au début de la portée.
  5. Un attribut défini sur la table ( CREATE TABLE ).
  6. La valeur de l'attribut par défaut.

En outre, lors de la génération de l'alignement horizontal de la cellule est déterminée d'abord sur les colonnes, puis les lignes, et l'alignement vertical - pour les lignes et les colonnes.

cellule par défaut d'alignement dépend de l'agent utilisateur. Cependant, les agents utilisateurs doivent remplacer l'attribut par défaut, respectivement la direction du courant (ie, pas seulement «gauche» dans tous les cas).

Les agents utilisateurs qui ne supportent pas la valeur "justifient" attribut align doit utiliser une direction de valeur correspondant.

Remarque. A noter qu'une cellule peut hériter d' un attribut non de son parent , mais à partir de la première cellule d'une travée. Ceci est une exception aux règles générales de l' héritage d'attributs.

11.3.3 cellulaire champs

les définitions d' attributs

cellspacing = longueur [CN]
Cet attribut spécifie l'espace que l'agent utilisateur doit laisser entre le côté gauche de la table et le bord gauche de la colonne de gauche, la limite supérieure de la table et le bord supérieur de la rangée supérieure, et ainsi de suite pour les bords droit et inférieur de la table. Cet attribut définit également l'espace entre les cellules.
cellpadding = longueur [CN]
Cet attribut définit l'espace entre la bordure de la cellule et son contenu. Si la valeur de cet attribut spécifié en pixels, les quatre marges doivent être de cette taille. Si la valeur d'attribut est spécifié comme un pourcentage, marges supérieure et inférieure doit être séparé du contenu au même pourcentage de l'espace vertical disponible, et les marges gauche et droite doit être séparé du contenu au même pourcentage de l'espace horizontal disponible.

Ces deux attributs contrôlent l'espacement entre et à l'intérieur des cellules. Ils sont expliqués dans l'illustration suivante:

Attributs cellspacing et cellpadding.

Dans l'exemple suivant, l'attribut cellspacing spécifie la distance de vingt pixels entre les cellules et à partir du bord de la table. Attribuer cellpadding détermine que les marges supérieure et inférieure de la cellule sont séparés du contenu de la cellule à 10% de l'espace vertical disponible (20%). De même, les marges gauche et droite de la cellule sont séparés des teneurs de 10% de l'espace horizontal disponible (20%).

  <TABLE cellspacing = cellpadding "20" = "20%">
 <TR> <TD> Data1 <TD> Données2 <TD> data3
 </ TABLE>

Si une table ou une colonne donnée a une largeur fixe, cellspacing et cellpadding peut occuper plus d' espace que assigné. Les agents utilisateurs peuvent donner à ces attributs préséance sur l'attribut width en cas de conflit, mais ils ne doivent pas nécessairement faire.

11.4 Les agents utilisateurs non visuels de génération de table

11.4.1 Communication des informations d' en- tête avec des cellules de données

les agents utilisateurs non visuels tels que les synthétiseurs vocaux et les appareils basés sur l'alphabet Broglie peut utiliser les attributs des éléments suivants TD et TH pour la génération plus intuitive des cellules de tableau:

  • Pour une cellule donnée de données dans l'attribut headers énumérés, dans lequel les cellules sont des informations d' en- tête pertinentes. A cet effet, chaque cellule d' en- tête doit recevoir un nom en utilisant l'attribut id . Rappelez-vous qu'il est pas toujours possible de diviser clairement les en-têtes et les données cellulaires. Dans une telle cellule, utiliser l'élément TD , ainsi que les attributs identifiant ou une portée .
  • Pour une cellule d' en- tête donné attribut champ indique à l'agent utilisateur les cellules de données pour lesquels l' information indique que la position. Les auteurs peuvent utiliser à la place de l'attribut en- têtes en fonction de ce qui est plus commode; Ces deux attributs ont la même fonction. Attribut en- têtes normalement nécessaires si un en- têtes non standard placés en position par rapport aux données auxquelles ils appliquent.
  • Attribut abbr spécifie un en- tête abrégé pour les cellules d' en- tête de sorte que les agents utilisateurs peuvent rapidement générer une information d' en- tête.

Dans l'exemple suivant, nous attribuons des informations d' en- tête pour les cellules en définissant l'attribut Les en- têtes . Chaque cellule de la même colonne se réfère à la même en- tête de la cellule ( en utilisant l' attribut id ).

  <Table border = "1" 
  summary = "Ce tableau fournit des informations sur la quantité
  tasses de boissons au café chaque sénateur, le type de café
  (Décaféiné ou régulier), et le sucre. ">
 <CAPTION> Combien de tasses de boissons au café chaque sénateur </ CAPTION>
 <TR>
  <TH id = "t1"> Nom </ TH>
  <TH id = "t2"> Comment </ TH>
  <TH id = "t3" abbr = "type"> Type café </ TH>
  <TH id = "t4"> Sucre? </ TH>
 <TR>
  <Têtes TD = "t1"> T.  </ TD> Sexton
  <Têtes TD = "t2"> 10 </ TD>
  <Têtes TD = "t3"> Espresso </ TD>
  <Têtes TD = "t4"> Non </ TD>
 <TR>
  <Têtes TD = "t1"> J.  </ TD> Dinnen
  <Têtes TD = "t2"> 5 </ TD>
  <Têtes TD = "t3"> décaféiné </ TD>
  <Têtes TD = "t4"> Oui </ TD>
 </ TABLE>

synthétiseur vocal peut générer la table comme suit:

  Titre: Combien de tasses de boissons au café chaque sénateur
 Résumé: Ce tableau fournit des informations sur la quantité
  tasses de boissons au café chaque sénateur, le type de café
  (Décaféiné ou régulier), et le sucre.
 Nom: T. Sexton, Combien: 10, Type: Espresso, Sucre: Aucun
 Nom :. J. Dinnen Combien: 5, Type: décaféiné, Sucre: Oui

Notez que le titre "Type de café" est réduit à "type" attribut à l' aide du abbr .

Voici le même exemple en utilisant l'attribut champ au lieu d'attributs Les en- têtes . Notez la valeur "col" attribut pour un champ d' application , ce qui signifie "toutes les cellules dans la colonne courante":

  <Table border = "1" 
  summary = "Ce tableau fournit des informations sur la quantité
  tasses de boissons au café chaque sénateur, le type de café
  (Décaféiné ou régulier), et le sucre. ">
 <CAPTION> Combien de tasses de boissons au café chaque sénateur </ CAPTION>
 <TR>
  <TH scope = "col"> Nom </ TH>
  <TH scope = "col"> Comment </ TH>
  <Scope TH = "col" abbr = "type"> Type café </ TH>
  <TH scope = "col"> Sucre? </ TH>
 <TR>
  <TD> T.  </ TD> Sexton
  <TD> 10 </ TD>
  <TD> Espresso </ TD>
  <TD> Non </ TD>
 <TR>
  <TD> J.  </ TD> Dinnen
  <TD> 5 </ TD>
  <TD> décaféiné </ TD>
  <TD> Oui </ TD>
 </ TABLE>

Ce qui suit est un exemple un peu plus complexe, ce qui montre les différentes valeurs de l'attribut portée :

 <Table border = "1" cellpadding = "5" cellspacing = "2"
  Résumé = "cours d'histoire offerts par le comté de Bath,
  triés par nom, l'enseignant, la description, 
  code et coût »>
  <TR>
  <TH colspan = "5" scope = "colgroup"> Cours - Bat, l'automne 1997 </ TH>.
  </ TR>
  <TR>
  <Scope TH = "col" abbr = "Nom"> Le cours </ TH>
  <Scope TH = "col" abbr = "Teacher"> Teacher Course </ TH>
  <TH scope = "col"> Description </ TH>
  <TH scope = "col"> ID </ TH>
  <TH scope = "col"> Coût </ TH>
  </ TR>
  <TR>
  <TD scope = "ligne"> Après la guerre civile </ TD>
  <TD> Dr. John Routon </ TD>
  <TD>
  Ce cours examine années turbulentes en Angleterre après 1646.
  <EM> 6 séances hebdomadaires, à partir du lundi 13 Octobre. </ EM>
  </ TD>
  <TD> H27 </ TD>
  <TD> & pound; 32 </ TD>
  </ TR>
  <TR>
  <TD scope = "ligne"> L'Angleterre anglo-saxonne - Introduction </ TD>
  <TD> Mark Cottle </ TD>
  <TD>
  cours d'une journée - une introduction à la première période médiévale
  Reconstruction de la société anglo-saxonne.  <EM> Samedi, 18
  Octobre. </ EM>
  </ TD>
  <TD> H28 </ TD>
  <TD> & pound; 18 </ TD>
  </ TR>
  <TR>
  <TD scope = "ligne"> Grèce </ TD>
  <TD> Valerie Lorenz </ TD>
  <TD>
  Le berceau de la démocratie, la philosophie, le cœur du théâtre, la maison de l'argumentation.  Cela pourrait rendre les Romains, les Grecs sinon devant eux.  <EM> Ecole du Sabbat 25 Octobre 1997, </ EM>
  </ TD>
  <TD> H30 </ TD>
  <TD> & pound; 18 </ TD>
  </ TR>
 </ TABLE>

Un agent utilisateur graphique peut générer est la suivante:

Une table avec des cellules fusionnées

Notez l'utilisation de l'attribut champ avec une valeur de "ligne". Bien que la première cellule de chaque rangée contient des données, pas d'en- tête, grâce à attribuer la portée des cellules de données ressemblent à une cellule d' en- tête de ligne. Cela permet à des synthétiseurs vocaux pour indiquer un nom de cours approprié sur demande ou pour le dire directement devant le contenu des cellules.

11.4.2 cellules Catégorisation

Peut-être les utilisateurs parcourant la table en utilisant des agents de voix veulent entendre une explication du contenu de la cellule, en plus de l'information elle-même. L' une des façons dont un agent utilisateur peut fournir une explication - de prononcer les informations d' en- tête appropriée avant que l' information de langue dans le contenu de la cellule (voir la section sur. En- tête d' information en raison des cellules de données ).

Les utilisateurs peuvent également avoir besoin d' informations sur plusieurs cellules, dans ce cas , les informations d' en- tête défini au niveau de la cellule (via les en- têtes , la portée , et abbr ) peuvent ne pas correspondre au contexte. Considérons le tableau suivant à la classification des dépenses sur la nourriture, les hôtels et les transports en deux endroits (San Jose et Seattle) sur plusieurs jours:

Un tableau énumérant les frais de déplacement en deux points: San Jose et Seattle, par date et catégorie (repas, hôtel et de transport), représenté avec des sous-titres

Les utilisateurs ont besoin d'extraire des informations de la table sous forme de requêtes:

  • «Combien de l'argent que je passais sur la nourriture?"
  • "Combien je l'ai consacré à l'alimentation 25 Août?"
  • «Combien de l'argent que je passais à San Jose?"

Chaque demande inclut des calculs effectués par l'agent utilisateur, ce qui peut affecter tout ou rien de la cellule. Pour déterminer, par exemple, le coût des aliments 25 Août l'agent utilisateur doit savoir quelle table les cellules se référer à "Food" (toutes les cellules), et ce qu'il faut "Datame" (25 Août), et de trouver l'intersection de ces deux ensembles.

Pour faire une demande de ce type de modèle de table HTML 4.0 permet aux auteurs de placer les en-têtes et les données cellulaires dans des catégories. Par exemple, dans le tableau du coût de l'écrivain de Voyage peut regrouper les cellules d'en-tête "San Jose" et "Seattle" dans la catégorie des "item" headers "repas", "Hôtels" et "Transport" dans la catégorie «Frais», et quatre jours dans la catégorie des "date". Ensuite, les trois questions précédentes auront les significations suivantes:

  • «Combien de l'argent que je passais sur la nourriture?" Cela signifie "Toutes les cellules de données de la catégorie« Dépenses = Food "?
  • "Combien je l'ai consacré à l'alimentation 25 Août?" Il signifie «Toutes les cellules de données de la catégorie« Dépenses = Food "et" Date = 25-Août-1997 "?
  • «Combien de l'argent que je passais à San Jose?" Il signifie «Toutes les cellules de données de la catégorie« Dépenses = Alimentation, Hôtels, Transport »et« Item = San Jose "?

Les auteurs définissent un en- tête de la catégorie ou de la cellule de données en définissant l'attribut à une cellule Axis . Par exemple, dans le tableau du coût d'une cellule de voyage d'affaires contenant les informations "San Jose" pourrait être placé dans la catégorie des «bureau» comme suit:

  <TH id = "a6" axe = "para"> San Jose </ TH>

Toute cellule contenant des informations relatives à "San Jose" devrait se référer à cet en- tête cellulaire via les attributs en- têtes ou un champ d' application . Ainsi, le coût des aliments 25-Aug-1997 devrait être une référence à l'attribut id (dont la valeur ici - "a6") cellules d' en- tête "San Jose":

 
  <Têtes TD = "a6"> 37,74 </ TD>

Chaque attribut headers contient une liste de liens id . Les auteurs peuvent ainsi définir la catégorie pour une cellule donnée à l'aide d'un certain nombre de méthodes (ou le long de tout nombre de «têtes», d'où le nom).

Le tableau suivant contient les frais de déplacement des catégories d'informations:

 <Table border = "1" summary = "V Ce tableau fournit des informations sur les frais de voyage en Août San-Hose et Sietle"> <CAPTION> rapport sur les frais de déplacement </ CAPTION> <TR> <TH> </ TH> < TH id = "a2" axe = "dépenses"> Alimentation </ TH> <TH id = axe = "frais" "a3"> Hôtel </ TH> <TH id = axe = "frais" "a4"> Transport < / TH> <TD> Total </ TD> </ TR> <TR> <TH id = "a6" axe = "para"> San Jose </ TH> <TH> </ TH> <TH> </ TH> <TH> </ TH> <TD> </ TD> </ TR> <TR> <TD id = "a7" axe = "date"> 25-Aug-97 </ TD> <headers TD = " "têtes> 37,74 </ TD> <TD =" a2 a7 a6 "têtes> 112.00 </ TD> <TD =" a7 a6 a3 a6 a7 a4 "> 45,00 </ TD> <TD> </ TD> </ TR > <TR> <TD id = "a8" axe = "date"> 26-Aug-97 </ TD> <TD headers = "a8 a2 a6" têtes> 27,28 </ TD> <TD = "a6 a8 a3" têtes> 112.00 </ TD> <TD = "a6 a8 a4"> 45,00 </ TD> <TD> </ TD> </ TR> <TR> <TD> Total </ TD> <TD> 65,02 </ TD > <TD> 224,00 </ TD> <TD> 90.00 </ TD> <TD> 379,02 </ TD> </ TR> <TR> <id TH = "a10" axe = "para"> Seattle </ TH> <TH> </ TH> <TH> </ TH> <TH> </ TH> <TD> </ TD> </ TR> <TR> <TD id = "a11" axe = "date"> 27- Août 97 </ TD> <headers TD = "a10 a11 a2"> 96,25 </ TD> <headers TD = "a10 a11 a3"> 109.00 </ TD> <headers TD = "a10 a11 a4"> 36.00 </ headers TD> <TD> </ TD> </ TR> <TR> <TD id = "a12" axe = "date"> 28-Aug-97 </ TD> <TD = "a10 a12 a2"> 35.00 < têtes / TD> <TD = "a10 a12 a3"> 109.00 têtes </ TD> <TD = "a10 a12 a4"> 36,00 </ TD> <TD> </ TD> </ TR> <TR> <TD> total </ TD> <TD> 131,25 </ TD> <TD> 218.00 </ TD> <TD> 72,00 </ TD> <TD> 421,25 </ TD> </ TR> <TR> <TH> total </ TH> <TD> 196.27 </ TD> <TD> 442,00 </ TD> <TD> 162.00 </ TD> <TD> 800,27 </ TD> </ TR> </ TABLE> 

Notez que cette disposition de la table permet également à l'agent utilisateur de ne pas tirer vers le bas les gens sont confondus avec des informations inutiles. Par exemple, si le synthétiseur de parole était de fournir tous les nombres dans la colonne "Food" de la table en réponse à une demande de «Tout dans le coût de la nourriture?", L'utilisateur ne pouvait pas distinguer le jour du montant final des coûts. Avec la catégorisation minutieuse des données, les auteurs permettent aux agents utilisateurs de faire des distinctions sémantiques importantes lors de la génération.

Bien entendu, les auteurs ne sont pas limités à la catégorisation de l'information contenue dans la table. Dans le tableau des frais de voyage, par exemple, nous pouvons introduire une catégorie supplémentaire de «total» et «total».

Cette spécification ne définit pas besoin d'agents utilisateurs de traiter les informations fournies par les attributs axe , et ne fait aucune recommandation concernant la présentation de l' information par des agents de l'attribut utilisateur axe ou spécification des demandes des utilisateurs cette information des agents.

Cependant, les agents utilisateurs, en particulier les synthétiseurs vocaux, peuvent libérer des informations communes à plusieurs cellules qui sont les résultats d'une requête. Par exemple, si un utilisateur demande: «Combien de l'argent que je passais sur la nourriture à San Jose", l'agent utilisateur doit déterminer les cellules appropriées (25-Aug-1997: 37,74, 26-Aug-1997: 27.28), puis générer les informations. L'agent utilisateur peut prononcer les informations suivantes:

  Item: San Jose.  Date: 25-Aug-1997.  Dépenses Alimentation: 37.74
  Item: San Jose.  Date: 26-Aug-1997.  Dépenses Alimentation: 27.28

ou de façon plus compacte:

  San José, 25-Août-1997 Alimentation: 37.74
  San José, 26-Août-1997 Alimentation: 27.28

Même plus économique génération peut allouer plus d'informations générales et réorganiser le:

  San José, de l'Alimentation, 25-Aug-1997: 37,74
  26-Aug-1997: 27.28

Les agents utilisateurs qui prennent en charge la génération de ce type doivent assurer la génération d'outils de configuration (par exemple, par le biais de feuilles de style).

11.4.3 Algorithme pour trouver des informations de cap

En l'absence d'informations d' en- tête dans l'attribut portée ou les en- têtes des agents utilisateurs peuvent comprendre ces informations, conformément à l'algorithme suivant. Le but de l'algorithme est de trouver une liste ordonnée des en-têtes. (Dans la description suivante de l'algorithme a décidé la direction de la table de gauche à droite.)

  • Tout d'abord la recherche de gauche de la cellule pour déterminer la position de l'en-tête de la lignée cellulaire. Ensuite, la recherche afin de définir une cellule d'en-tête de colonne. Rechercher dans une direction donnée arrête lorsque atteint le bord d'une table ou d'une cellule de données se trouve après une cellule d'en-tête.
  • têtes de ligne sont placés dans la liste dans l'ordre dans lequel ils apparaissent dans le tableau. Pour les tables, dirigées de gauche à droite en-têtes sont placées de gauche à droite.
  • Les titres des colonnes sont placés après les en-têtes de rangée, dans l'ordre dans lequel ils apparaissent dans le tableau, de haut en bas.
  • Si un attribut tête de cellule définie Les en- têtes , les en- têtes référencés par cet attribut sont placés dans la liste, et la recherche de la direction actuelle est terminée.
  • Les cellules TD , dans lequel l'attribut est défini l' axe , sont traités de la même que les cellules d' en- tête.

11.5 Exemple de tableau

Cet exemple montre les lignes et les colonnes groupées. L'exemple est tiré du livre "Développement Software International" par Nadine Kano.

Dans "format ascii" le tableau suivant:

  <table border = "2" frame = "hsides" règles = "groupes"
  summary = "Support pour les pages de code dans les différentes versions de MS Windows.">
 <CAPTION> page de code dans le support MICROSOFT WINDOWS </ CAPTION>
 <COLGROUP align = "center">
 <COLGROUP align = "left">
 <COLGROUP align = "center" span class = "2">
 <COLGROUP align = "center" span class = "3">
 <THEAD valign = "top">
 <TR>
 <TH> code ID page <BR>
 <TH> Nom
 <TH> ACP
 <TH> OEMCP
 <TH> de Windows NT 3.1 <BR>
 <TH> de Windows NT 3.51 <BR>
 <TH> Fenêtres <BR> 95
 <TBODY>
 <TR> <TD> 1200 <TD> Unicode (BMP de la norme ISO / IEC-10646) <TD> <TD> <TD> X <TD> X <TD> *
 <TR> <TD> 1250 <TD> Windows 3.1 Est européen <TD> X <TD> <TD> X <TD> X <TD> X
 <TR> <TD> 1251 <TD> Windows 3.1 cyrillique <TD> X <TD> <TD> X <TD> X <TD> X
 <TR> <TD> 1252 <TD> Fenêtres US 3.1 (ANSI) <TD> X <TD> <TD> X <TD> X <TD> X
 <TR> <TD> 1253 <TD> Windows 3.1 grec <TD> X <TD> <TD> X <TD> X <TD> X
 <TR> <TD> 1254 <TD> Windows 3.1 turc <TD> X <TD> <TD> X <TD> X <TD> X
 <TR> <TD> 1255 <TD> Hebrew <TD> X <TD> <TD> <TD> <TD> X
 <TR> <TD> 1256 <TD> Arabe <TD> X <TD> <TD> <TD> <TD> X
 <TR> <TD> 1257 <TD> Baltic <TD> X <TD> <TD> <TD> <TD> X
 <TR> <TD> 1361 <TD> Corée (Johab) <TD> X <TD> <TD> <TD> ** <TD> X
 <TBODY>
 <TR> <TD> 437 <TD> US MS-DOS <TD> <TD> X <TD> X <TD> X <TD> X
 <TR> <TD> 708 <TD> arabe (ASMO 708) <TD> <TD> X <TD> <TD> <TD> X
 <TR> <TD> 709 <TD> arabe (ASMO 449+, BCON V4) <TD> <TD> X <TD> <TD> <TD> X
 <TR> <TD> 710 <TD> arabe (arabe transparent) <TD> <TD> X <TD> <TD> <TD> X
 <TR> <TD> 720 <TD> Arabe (Transparent ASMO) <TD> <TD> X <TD> <TD> <TD> X
 </ TABLE>

Elle peut être générée comme suit:

  Le support de la page de code Microsoft Windows 
 ================================================== ===============================
 code d'identification |  nom |  OEMCP ACP |  Windows Windows de Windows
 Pages |  |  |  NT 3.1 NT 3.51 95
 -------------------------------------------------- -------------------------------
  1200 |  Unicode (BMP de la norme ISO 10646) |  |  XX *
  1250 |  Windows 3.1 Europe de l'Est |  X |  XXX
  1251 |  Windows 3.1 cyrillique |  X |  XXX
  1252 |  US Windows 3.1 (ANSI) |  X |  XXX
  1253 |  Grec Windows 3.1 |  X |  XXX
  1254 |  Fenêtres turque 3.1 |  X |  XXX
  1255 |  Hebrew |  X |  X
  1256 |  arabe |  X |  X
  1257 |  Baltique |  X |  X
  1361 |  Coréen (Johab) |  X |  ** X
 -------------------------------------------------- -----------------------------
  437 |  US MS-DOS |  X |  XXX
  708 |  Arabe (ASMO 708) |  X |  X
  709 |  Arabe (ASMO 449+, BCON V4) |  X |  X
  710 |  Arabe (arabe transparent) |  X |  X
  720 |  Arabe (Transparent ASMO) |  X |  X
 ================================================== =============================

Un agent utilisateur graphique pourrait générer comme suit:

Une table avec des lignes et des colonnes groupées

Cet exemple montre comment utiliser le COLGROUP pour grouper les colonnes, et les colonnes par défaut d'alignement d'installation. De même TBODY utilisé pour regrouper les lignes. Attributs cadre et les règles disent que l'agent utilisateur qui les frontières et les règles à générer.