/usr/share/help/fr/hig-book/hig-ch-controls.xml is in gnome-devel-docs 3.8.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 | <?xml version="1.0" encoding="utf-8"?>
<chapter id="controls" lang="fr">
<title>Contrôles</title>
<sect1 id="controls-usage">
<title>Utilisation efficace des contrôles</title>
<para>GNOME fournit un ensemble de contrôles, également connus sous le nom de « widgets », qui permet aux utilisateurs d'interagir avec vos applications. Utiliser ces contrôles de manière appropriée et ne pas modifier leur comportement standard est important. Cela permet aux utilisateurs de prévoir les effets de leurs actions et par conséquent d'apprendre à utiliser votre application plus rapidement et efficacement. Les contrôles ne se comportant pas de manière standard, en questionnant l'utilisateur sur la façon dont fonctionne votre application, cassent ses automatismes mentaux et diluent la signification du langage visuel de l'interface.</para>
</sect1>
<sect1 id="controls-terminology">
<title>Terminologie</title>
<para>Bien qu'ils soient connus sous le nom de « widgets » dans les API GNOME et la documentation des développeurs, n'utilisez pas ce terme dans l'interface ou la documentation utilisateur. Appelez-les par leur nom spécifique (par exemple, « boutons » ou « menus ») ou par le nom générique « contrôles ».</para>
</sect1>
<sect1 id="controls-sensitivity">
<title>Sensibilité</title>
<!-- <remark>Do we really want to include GTK calls here? -Seth</remark> -->
<!-- CFB have removed the GTK calls for the basic stuff, although left it in for the
more obscure things that hackers currently aren't doing -->
<para>Parfois il n'y a pas de raison de permettre à l'utilisateur d'interagir avec un contrôle dans un contexte donné, par exemple appuyer sur le bouton <guilabel>Coller</guilabel> lorsque le presse-papier est vide. Dans ces cas-là, rendez le contrôle insensible pour minimiser le risque d'une erreur utilisateur. Lorsque le contrôle est insensible, il apparaît estompé et ne peut pas recevoir le focus, même si certaines technologies d'assistance comme les lecteurs d'écran sont quand même capables de les détecter et de les signaler.</para>
<para>Il est souvent préférable de rendre un contrôle insensible plutôt que de le masquer complètement. De cette façon l'utilisateur peut prendre connaissance de fonctionnalités qu'il utilisera peut-être plus tard même si elle n'est pas encore disponible.</para>
<figure>
<title>Deux cases à cocher : sensible (en haut) et insensible (en bas)</title>
<mediaobject>
<imageobject>
<imagedata depth="76" fileref="images/controls-sensitivity.png" format="PNG" width="258"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-sensitivity.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Screenshot showing the visual appearance of sensitive and
insensitive check box controls</phrase>
</textobject>
</mediaobject>
</figure>
<!--
<para>Sometimes, however, a large group of controls always become insensitive or sensitive simultaneously as the direct result of user action, such as checking a box or pressing a button. In this case it is sometimes better to hide or show the controls (for example, using the <ulink url="http://developer.gnome.org/doc/API/2.0/gtk/gtkwidget.html#GTK-WIDGET-SHOW"><function>gtk_widget_show()</function></ulink> and <ulink url="http://developer.gnome.org/doc/API/2.0/gtk/gtkwidget.html#GTK-WIDGET-HIDE"><function> gtk_widget_hide()</function></ulink> functions, for GTK controls) rather than making them sensitive or insensitive. For example, if all the controls on a <link linkend="controls-notebooks">notebook tab</link> are insensitive, it is usually better to hide the tab altogether.</para>
-->
<!-- CB-Ed: Hmm. Not sure about the preceding paragraph and the suggestion it makes. Usually you don't want to change an interface as drastically as removing an entire tab when a user clicks a button - it's jarring, first of all, and secondly, you want to keep the UI as consistent as possible: one of the reasons for disabling, say, a menu item, and not just making it disappear when it is unavailable, is to train the user's eye and behavior to know where certain things are located. You may want to back this up or verify the suggestion's strength before finalizing the HIG. -->
<sect2 id="controls-locked">
<title>Contrôles verrouillés</title>
<para>Dans un environnement où le réseau est administré, comme dans un laboratoire d'informatique, les administrateurs système souhaitent habituellement « verrouiller » les valeurs de certains paramètres, voire les supprimer complètement de l'interface utilisateur. Il leur est ainsi plus facile de résoudre tout problème que les utilisateurs pourraient rencontrer. Dans GNOME, la manière correcte de faire cela pour l'administrateur système est de restreindre l'accès en écriture aux clés GConf correspondant à ces réglages.</para>
<para>Lorsque vous concevez une application, prenez en considération les paramètres qu'un administrateur système pourrait vouloir rendre indisponibles aux utilisateurs. Cela comprend habituellement :</para>
<itemizedlist>
<listitem>
<para>les paramètres qui, mal configurés, empêcheraient l'application de fonctionner complètement. Par exemple, les paramètres du serveur mandataire pour une application réseau.</para>
</listitem>
<listitem>
<para>les paramètres qui pourraient être référencés dans des ressources en réseau. Par exemple, le répertoire des modèles dans une application de bureautique dans lequel les fournitures de bureau partagées, telles que les feuilles d'en-tête de fax, peuvent être enregistrées.</para>
</listitem>
<listitem>
<para>les paramètres qui personnalisent l'interface utilisateur, autres que ceux nécessaires pour l'accessibilité. Par exemple, certaines options de personnalisation de menu, clavier ou barre d'outils.</para>
</listitem>
</itemizedlist>
<para>Votre application doit décider, chaque fois que ces contrôles sont affichés, s'ils sont ou ne sont pas disponibles pour modification selon l'état en écriture de la clé GConf qui contient leur valeur. Dans les cas les plus simples, votre code pour chaque contrôle pourrait ressembler à l'exemple ci-dessous.</para>
<!-- CB-Ed: Again, reconsider who your readers are. Some may not be comfortable with terms such as "runtime." Use language that is more inclusive; you may reword the first sentence to say "...decide when you start up your machine whether..." or something along those lines. -->
<example>
<title>Exemple de fragment de code montrant comment rendre insensible un contrôle GConf verrouillé</title>
<programlisting>if (!gconf_key_is_writable (http_proxy))
gtk_widget_set_sensitive (http_proxy_field, FALSE);</programlisting>
</example>
<para>Incorporez dans votre guide d'utilisateur, à l'adresse des administrateurs système, un chapitre expliquant quels paramètres peuvent être verrouillés et leurs clés GConf correspondantes.</para>
<para>Expliquez à l'utilisateur pourquoi ces contrôles ne peuvent pas être modifiés en ce moment. Vous pouvez le faire avec du texte statique, des infobulles ou de l'aide en ligne selon les cas. Par exemple :</para>
<figure>
<title>Exemple de boîte de dialogue contenant des contrôles verrouillés</title>
<mediaobject>
<imageobject>
<imagedata depth="216" fileref="images/controls-locked.png" format="PNG" width="475"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-locked.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Screenshot showing disabled proxy controls in a web
browser's property dialog, under the caption "Only the
system administrator can change these settings"</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Figure is good, add callouts, taking some text from the caption, and make caption more succinct: "Dialog with locked settings/controls." When referring to figures, use the figure number, preferably with the following format: chapter_no - figure_no so that figures can be referred to from outside its housing chapter. -->
<para>Notez que, bien qu'ils ne puissent pas être modifiés, ces paramètres restent visibles et sélectionnables ; ils peuvent être copiés dans le presse-papier.</para>
<!-- CB-Ed: Second sentence in above paragraph: "In some cases?" Please provide solid examples and reasons for why you suggest such a thing as hiding "affected controls." -->
</sect2>
</sect1>
<sect1 id="controls-entry">
<title>Champs de saisie de texte</title>
<para>Les champs de saisie de texte sont utilisés pour saisir une ou plusieurs lignes de texte. Dans GTK 2, le contrôle <ulink url="http://developer.gnome.org/doc/API/2.0/gtk/gtkentry.html">GtkEntry</ulink> est utilisé pour les entrées texte sur une seule ligne et <ulink url="http://developer.gnome.org/doc/API/2.0/gtk/gtktextview.html">GtkTextView</ulink> pour les entrées texte sur plusieurs lignes.</para>
<!-- CB-Ed: The second and third sentences are baffling. It seems to be just directed at the developer; it is not inclusive to readers who are not coders. This probably isn't what you want to get people like visual/UI designers to read and use this guide. -->
<figure>
<title>Champs de saisie mono ou multi-lignes</title>
<mediaobject>
<imageobject>
<imagedata depth="153" fileref="images/controls-text.png" format="PNG" width="545"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-text.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Screenshot of part of a dialog, containing both single and
multi-line entry fields</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Dialog "fragment?" Use callouts. Succinct caption: "Text fields." or "Single and Multi-line Entry Fields"-->
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Étiquetez le champ de saisie avec un intitulé textuel placé au dessus ou à sa gauche en respectant les règles de <link linkend="layout-capitalization">mise en majuscule des phrases</link>. Indiquez dans l'étiquette la touche d'accès permettant à l'utilisateur de donner le focus directement au champ de saisie.</para>
</listitem>
<listitem>
<para>Justifiez à droite le contenu des champs de saisie qui ne sont utilisés que pour des entrées numériques, à moins que la convention de la langue locale ne requière autrement. Ceci est utile dans les fenêtres dans lesquelles l'utilisateur peut vouloir comparer deux valeurs numériques dans la même colonne de contrôles. Dans ce cas, assurez-vous que les bords de droite des contrôles concernés sont également alignés.</para>
</listitem>
<listitem>
<para>Lorsque l'utilisateur donne le focus à un champ de saisie en utilisant le clavier, placez le curseur de texte à la fin du texte existant et mettez en surbrillance son contenu (mais n'écrasez pas la sélection existante du presse-papier PRINCIPAL). Cela facilite l'effacement de ce texte ou l'ajout d'un nouveau texte à la suite, qui sont les deux opérations les plus courantes effectuées sur les champs de saisie.</para>
</listitem>
<listitem>
<para>Dimensionnez les champs de saisie texte d'après la longueur prévisible de l'entrée. Cela donne une information visuelle utile sur la quantité de données attendue et structure la boîte de dialogue en la rendant plus facile à parcourir. Ne donnez pas la même longueur à tous les champs juste pour faire que tout soit gentiment aligné.</para>
</listitem>
<!-- CB-Ed: Try to cluster input text fields so that fields of similar "types" end up together, and end up having uniform sizes. Usually you want to size text entry fields to the width of the largest input expected in each clustering. A clean and orderly visual flow is indeed important for the user; that is, line things up so that "everything line[s] up nicely" where possible. The figure (3) actually shows this well. -->
<listitem>
<para>Dans une <link linkend="windows-utility">fenêtre Propriétés ou Préférences</link> à application instantanée, validez le contenu d'un champ de saisie lorsqu'il perd le focus ou lorsque la fenêtre est fermée et non pas à chaque pression de touche. Exception : si le champ accepte seulement un nombre fixe de caractères, tel qu'un code de couleur hexadécimal, validez et appliquez le changement dès que le nombre de caractères a été saisi.</para>
</listitem>
<listitem>
<para>Fournissez un texte statique comme exemple pour les boîtes de texte qui ont besoin d'une entrée dans un format particulier ou avec une unité de mesure particulière. Par exemple :</para>
<figure>
<title>Champ de saisie texte avec un texte statique comme exemple</title>
<mediaobject>
<imageobject>
<imagedata depth="31" fileref="images/controls-text-prompt.png" format="PNG" width="130"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-text-prompt.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A text entry field in which the user must input a time,
with the label "hh:mm" beside it to indicate the
required format</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Good fig, provide callouts to "static text prompt," shorten caption and fix fig no. -->
</listitem>
<listitem>
<para>Lorsque c'est possible, mettez un contrôle supplémentaire ou alternatif qui restreint les valeurs d'entrée à la plage de validité. Par exemple, placez une <link linkend="controls-spin-boxes">zone de sélection numérique</link> ou un <link linkend="controls-sliders">un curseur dans une glissière</link> si l'entrée requise se situe dans une plage fixe d'entiers ou donnez accès à un contrôle <ulink url="http://developer.gnome.org/doc/API/2.0/gtk/gtkcalendar.html">GtkCalendar</ulink> si l'utilisateur doit saisir une date valide :</para>
<figure>
<title>Un champ de saisie texte dans lequel l'utilisateur doit saisir une date avec un bouton à son côté qui fait apparaître un contrôle GtkCalendar pour simplifier la tâche</title>
<mediaobject>
<imageobject>
<imagedata depth="41" fileref="images/controls-text-choose.png" format="PNG" width="298"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-text-choose.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A text entry field in which the user must input a date,
with a button labelled "Choose" beside it that opens a
GtkCalendar control to simplify the task</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Provide a larger image including examples of "spinbox" or "slider." Same comments apply here as to all figuers in the HIG: callouts, shorter caption, figure number. -->
<para>C'est moins sujet à erreur que de présupposer que l'utilisateur saisira son entrée texte dans un quelconque format donné. Vous pouvez néanmoins toujours fournir un contrôle champ de saisie pour les utilisateurs experts familiers du format exigé.</para>
</listitem>
<listitem>
<para>Si vous mettez en place un champ de saisie qui n'accepte que certaines frappes de touche dans le contexte de la tâche, comme des nombres, émettez le signal d'avertissement du système lorsque l'utilisateur essaye de saisir un caractère non valide. Si l'utilisateur saisit trois caractères non valides consécutifs, affichez une <link linkend="windows-alert">alerte</link> qui explique quelles sont les entrées valides pour ce champ de texte.</para>
</listitem>
<listitem>
<para>Le clignotement du curseur et la durée de son cycle sont globalement définis par les paramètres X « gtk-cursor-blink » et « gtk-cursor-blink-time ». Les contrôles de boîte à outils standard utilisent ces paramètres qui ne doivent être modifié à aucun prix dans les applications. Tout nouveau contrôle avec des curseurs de texte se doit de respecter ces valeurs globales.</para>
</listitem>
</itemizedlist>
<sect2 id="controls-text-return">
<title>Comportement de la touche Entrée</title>
<para>Normalement, l'appui sur la touche <keycap>Entrée</keycap> dans une boîte de dialogue doit activer le bouton par défaut de la boîte de dialogue, à moins que le contrôle qui possède le focus ne l'utilise pour son propre usage. Pour activer cette dernière propriété, vous devez paramétrer la propriété <ulink url="http://developer.gnome.org/doc/API/2.0/gtk/GtkEntry.html#GtkEntry--activates-default"><function>activates-default</function></ulink> de la plupart des champs de saisie à VRAI (TRUE) (notez que GtkTextView ne possède pas un tel réglage — un appui sur <keycap>Entrée</keycap> insère toujours une nouvelle ligne).</para>
<para>Cependant si votre boîte de dialogue contient plusieurs champs de saisie habituellement remplis dans l'ordre, par exemple <guilabel>Nom</guilabel>, <guilabel>Adresse</guilabel> et <guilabel>Numéro de téléphone</guilabel>, songez à paramétrer la propriété <function>activates-default</function> de ces champs de saisie à FAUX (FALSE). Un appui sur <keycap>Entrée</keycap> déplacera alors le focus vers le contrôle suivant et empêchera l'utilisateur de fermer accidentellement la fenêtre avant d'avoir saisi toutes les informations voulues.</para>
<para>Comme sécurité supplémentaire, pensez à de ne pas définir de bouton par défaut dans une boîte de dialogue tant que le minimum requis d'informations n'a pas été saisi, par exemple, à la fois un nom d'utilisateur et un mot de passe dans une boîte de dialogue de connexion. Encore une fois, dans ce cas vous devez déplacer le focus vers le contrôle suivant lorsque l'utilisateur appuie sur <keycap>Entrée</keycap> plutôt que de l'ignorer.</para>
<para>Utilisez <keycombo><keycap>Ctrl</keycap><keycap>Entrée</keycap></keycombo> en tant que raccourci clavier si vous voulez activer le bouton par défaut lorsqu'un contrôle GtkTextView possède le focus.</para>
<note>
<title>Note</title>
<para>Actuellement, Gtk ne déplace pas le focus vers le contrôle suivant quand la touche <keycap>Entrée</keycap> est pressée et que <function>activates-default</function> soit défini égal à FALSE (FAUX) ou qu'il n'y ait pas de bouton par défaut dans la fenêtre. Comme, pour l'instant, <keycap>Entrée</keycap> ne fait rien dans ces situations, souvenez-vous donc qu'il vous appartient de gérer le déplacement du focus par vous-même.</para>
</note>
</sect2>
<sect2 id="controls-text-tab">
<title>Comportement de la touche Tab</title>
<para>Habituellement, l'appui sur la touche <keycap>Tab</keycap> dans un champ de saisie mono-ligne déplace le focus vers le contrôle suivant et, dans un champ de saisie multi-lignes, insére un caractère de tabulation. L'appui sur <keycombo><keycap>Ctrl</keycap><keycap>Tab</keycap></keycombo> dans un champ de saisie multi-lignes déplace le focus vers le contrôle suivant.</para>
<para>Si vous avez besoin d'un raccourci clavier qui insère un caractère tabulation dans un champ de saisie mono-ligne, utilisez <keycombo><keycap>Ctrl</keycap><keycap>Tab</keycap></keycombo>. Cependant, vous ne trouverez probablement pas beaucoup de situations où cela est utile.</para>
<remark>There is a patch in bugzilla (bugid=<ulink url="http://bugzilla.gnome.org/show_bug.cgi?id=53763">53763</ulink>)
that adds an <function>allow_tab_characters</function> function to
GtkEntry controls. This allows you to specify on a per-control basis
whether <keycap>Tab</keycap> should insert a tab character or not. It is
currently not known whether this patch is likely to make it into a
future version of gtk.</remark>
</sect2>
</sect1>
<sect1 id="controls-spin-boxes">
<title>Zone de sélection numérique</title>
<para>Une zone de sélection numérique est une boîte texte acceptant une plage de valeurs. Elle contient deux boutons fléchés qui permettent d'augmenter ou de diminuer la valeur actuelle d'une quantité fixée.</para>
<figure>
<title>Exemple de zone de sélection numérique</title>
<mediaobject>
<imageobject>
<imagedata depth="32" fileref="images/controls-spin-box.png" format="PNG" width="204"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-spin-box.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A simple spin box used to specify the spacing between
applets on a panel</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Callout, shorten caption, fig no -->
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Utilisez les zones de sélection numérique uniquement pour des entrées numériques. Utilisez une liste ou un menu d'options lorsque vous avez besoin que l'utilisateur choisisse parmi un ensemble fixé de données d'un autre type.</para>
</listitem>
<listitem>
<para>Utilisez une zone de sélection numérique si la connaissance de la valeur numérique est significative ou utile pour l'utilisateur et que la plage des entrées valides est illimitée ou fixée à une extrémité seulement. Par exemple, un contrôle pour définir le nombre d'itérations de certaines actions ou une valeur de délai. Si la plage est bornée aux deux extrémités ou que les valeurs numériques sont arbitraires (par exemple, un contrôle de volume), utilisez un contrôle avec un curseur dans une glissière à la place.</para>
</listitem>
<listitem>
<para>Donnez un nom à la zone de sélection numérique à l'aide d'un texte au dessus ou à sa gauche en utilisant la règle de <link linkend="layout-capitalization">mise en majuscule des phrases</link>. Indiquez dans l'étiquette la touche d'accès permettant à l'utilisateur de donner le focus directement à la zone de sélection numérique.</para>
</listitem>
<listitem>
<para>Justifiez à droite le contenu des zones de sélection numérique à moins que la convention de la langue locale ne requière autrement. Ceci est utile dans les fenêtres dans lesquelles l'utilisateur peut vouloir comparer deux valeurs numériques dans la même colonne de contrôles. Dans ce cas, assurez-vous que les bords de droite des contrôles concernés sont également alignés. </para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="controls-sliders">
<title>Glissières</title>
<para>Un curseur dans une glissière permet à l'utilisateur de choisir rapidement une valeur dans une plage fixée et ordonnée ou d'augmenter ou diminuer la valeur actuelle. Le contrôle ressemble au type de curseur que vous pouvez trouver sur une table de mixage audio ou un égaliseur graphique Hi-Fi. Avec gtk, vous implémentez un curseur dans une glissière en utilisant les contrôles GtkHScale ou GtkVScale pour les glissières horizontales ou verticales respectivement.</para>
<figure id="controls-slider-figure">
<title>Un simple contrôle à glissière</title>
<mediaobject>
<imageobject>
<imagedata depth="27" fileref="images/controls-slider.png" format="PNG" width="208"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-slider.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A slider control used to change the stereo audio balance
between left and right speakers</phrase>
</textobject>
</mediaobject>
</figure>
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Utilisez un curseur dans une glissière lorsque :</para>
<itemizedlist>
<listitem>
<para>l'ajustement de la valeur par rapport à sa valeur actuelle est plus important que de choisir une valeur précise. Par exemple, un contrôle de volume : l'utilisateur moyen pense habituellement à monter ou descendre le volume pour rendre le son plus fort ou plus faible plutôt que de régler le pic du niveau de sortie à une valeur donnée en décibels,</para>
</listitem>
<listitem>
<para>il est utile à l'utilisateur de contrôler le taux de variation de la valeur en temps réel. Par exemple, pour contrôler les effets d'un changement de couleur dans une fenêtre d'aperçu en temps réel lorsqu'il déplace les curseurs dans les glissières RVB.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>Donnez un nom à la glissière à l'aide d'un texte au dessus ou à sa gauche en respectant les règles de <link linkend="layout-capitalization">mise en majuscule des phrases</link>. Indiquez dans l'étiquette la touche d'accès permettant à l'utilisateur de donner directement le focus à la glissière.</para>
</listitem>
<listitem>
<para>Indiquez les valeurs significatives le long de la glissière avec du texte ou des marques de graduation. Par exemple, les points gauche, droite et central pour un contrôle de balance audio sur la <xref linkend="controls-slider-figure"/>.</para>
</listitem>
<listitem>
<para>Pour de grandes plages d'entiers (plus de 20 environ) et pour des plages de nombres en virgule flottante, pensez à disposer une boîte de texte ou une zone de sélection numérique liée à la position du curseur dans la glissière. Ainsi, l'utilisateur pourra choisir rapidement ou ajuster finement le réglage plus facilement qu'il ne le ferait avec le curseur du contrôle glissière seul.</para>
<figure>
<title>Contrôles glissière avec des zones de sélection numérique associées</title>
<mediaobject>
<imageobject>
<imagedata depth="85" fileref="images/controls-slider-spinbox.png" format="PNG" width="356"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-slider-spinbox.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Three slider controls used to change RGB values, each
with a spinbox beside them to facilitate direct numeric entry</phrase>
</textobject>
</mediaobject>
</figure>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="controls-buttons">
<title>Boutons</title>
<para>Un bouton lance une action lorsque l'utilisateur clique dessus.</para>
<figure>
<title>Boutons classiques dans une boîte de dialogue modale</title>
<mediaobject>
<imageobject>
<imagedata depth="47" fileref="images/controls-buttons.png" format="PNG" width="190"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-buttons.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>OK and Cancel buttons as found in a modal dialog</phrase>
</textobject>
</mediaobject>
</figure>
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>En anglais, nommez tous les boutons avec un verbe à l'impératif en utilisant les règles d'emploi <link linkend="layout-capitalization">des majuscules dans les titres</link> (en français, utilisez l'infinitif et ne mettez pas de majuscules sauf en début de phrase ou pour les noms propres). Par exemple <guilabel>Save (Enregistrer)</guilabel>, <guilabel>Sort (Trier)</guilabel> ou <guilabel>Update Now (Mettre à jour)</guilabel>. Indiquez dans l'étiquette la touche d'accès permettant à l'utilisateur de donner le focus directement au bouton à partir du clavier.</para>
</listitem>
<listitem>
<para>Après avoir appuyé sur un bouton, l'utilisateur s'attend à voir le résultat de son action dans la seconde, par exemple la fermeture de la fenêtre ou l'ouverture d'une autre. Consultez le <xref linkend="feedback"/> pour des indications sur ce qu'il faut faire lorsque l'application ne peut pas répondre rapidement.</para>
</listitem>
<!-- CB-Ed: Do you use ms in other parts of the HIG? Might want to just use ms and not s as a measure, to keep things consistent and in case you need to finer granualarity than this later -->
<listitem>
<para>Mettez des points de suspension (...) à la fin de l'étiquette si l'action nécessite des entrées supplémentaires de l'utilisateur avant d'être prise en compte. Par exemple, <guilabel>Enregistrer sous...</guilabel> ou <guilabel>Rechercher...</guilabel>. N'ajoutez pas de points de suspension aux commandes comme <guilabel>Propriétés</guilabel>, <guilabel>Préférences</guilabel> ou <guilabel>Paramètres</guilabel> car elles ouvrent des fenêtres qui ne <emphasis>nécessitent</emphasis> pas d'entrées supplémentaires pour être prises en compte.</para>
</listitem>
<listitem>
<para>Une fois qu'une boîte de dialogue est affichée, ne déplacez pas le bouton par défaut d'un bouton vers un autre. Vous pouvez cependant ajouter ou supprimer la propriété par défaut à un même bouton, si cela aide à éviter une erreur de l'utilisateur. Changer de bouton par défaut peut rendre confus et inefficace l'interface, plus particulièrement pour les utilisateurs qui utilisent des technologies d'assistance.</para>
</listitem>
<listitem>
<para>Si votre bouton peut afficher du texte, une icône ou les deux, choisissez l'étiquette à afficher au moment de l'exécution selon les préférences utilisateur dans les menus GNOME et la boîte de dialogue Préférences de la barre d'outils. Cependant vous pouvez ignorer cette préférence s'il n'y a pas d'icône adaptée pour décrire graphiquement l'action du bouton, par exemple.</para>
</listitem>
<listitem>
<para>N'utilisez pas plus d'une ou deux largeurs différentes de boutons dans la même fenêtre et donnez la même hauteur à tous. Vous donnerez ainsi une apparence visuelle uniforme agréable à votre fenêtre, ce qui la rendra plus facile à utiliser.</para>
</listitem>
<listitem>
<para>N'associez pas d'action à un double-clic ou à un clic-droit sur un bouton. Il est peu probable que les utilisateurs découvrent ces actions, et s'ils le faisaient, leurs attentes des autres boutons du bureau en serait perturbée.</para>
</listitem>
<listitem>
<para>Rendez insensibles les boutons non valides plutôt que d'afficher un message d'erreur lorsque l'utilisateur clique dessus.</para>
</listitem>
</itemizedlist>
<para>Dans une boîte de dialogue, un seul bouton peut être le bouton par défaut ; il est affiché avec une bordure différente et est activé par un appui sur la touche <keycap>Entrée</keycap>. C'est très souvent le bouton <guibutton>Valider</guibutton> ou équivalent. Cependant si l'appui sur ce bouton peut par erreur faire perdre des données, ne paramétrez pas de bouton par défaut pour la fenêtre. Ne configurez pas le bouton <guibutton>Annuler</guibutton> comme bouton par défaut à la place. Consultez la <xref linkend="default-buttons"/> pour plus d'informations.</para>
<!-- CB-Fig: Add a figure here to illustrate a default button. -->
<para>S'il n'y a pas de raison d'avoir un bouton par défaut tant que plusieurs champs n'ont pas été correctement remplis dans la boîte de dialogue — par exemple les champs <guilabel>Nom d'utilisateur</guilabel> et <guilabel>Mot de passe</guilabel> dans une boîte de dialogue de connexion — ne paramétrez le bouton par défaut que lorsqu'ils sont tous deux complétés.</para>
</sect1>
<sect1 id="controls-check-boxes">
<title>Cases à cocher</title>
<para>Les cases à cocher sont utilisées pour afficher ou modifier un paramètre. Leurs deux états, coché ou non coché, sont marqués par la présence ou l'absence d'une coche dans la boîte de l'étiquette.</para>
<figure>
<title>Un groupement typique de cases à cocher</title>
<mediaobject>
<imageobject>
<imagedata depth="140" fileref="images/controls-check-boxes.png" format="PNG" width="143"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-check-boxes.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A typical group of five check boxes in a dialog</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: callouts. -->
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Ne lancez pas d'action lorsqu'un utilisateur clique sur une case à cocher. Toutefois, si elle est utilisée dans une <link linkend="windows-utility">fenêtre Propriétés ou Préférences</link> à application instantanée, mettez immédiatement à jour le réglage représenté par la case à cocher.</para>
</listitem>
<listitem>
<para>Un clic dans une case à cocher ne doit pas affecter les valeurs d'un autre contrôle. Cela peut néanmoins rendre sensible ou insensible, masquer ou afficher d'autres contrôles.</para>
</listitem>
<listitem>
<para>Si un clic dans une case à cocher affecte la sensibilité d'autres contrôles, placez la case à cocher immédiatement au dessus ou à gauche des contrôles qu'elle affecte. Vous indiquez ainsi que les contrôles dépendent de l'état de la case à cocher.</para>
</listitem>
<listitem>
<para>Utilisez les règles de <link linkend="layout-capitalization">mise en majuscule des phrases</link> pour les étiquettes de case à cocher, par exemple <guilabel>Utiliser une police personnalisée</guilabel>.</para>
</listitem>
<listitem>
<para>Nommez les cases à cocher de manière à indiquer clairement les effets des deux états coché et non coché, par exemple <guilabel>Afficher les icônes dans les menus</guilabel>. Si cela pose problème, pensez à utiliser deux boutons radio à la place afin que les deux états possèdent leur propre étiquette. Par exemple :</para>
<figure>
<title>La case à cocher est ambiguë (en haut), les boutons radio sont explicites (en bas)</title>
<mediaobject>
<imageobject>
<imagedata depth="70" fileref="images/controls-check-box-ambiguous.png" format="PNG" width="279"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-check-box-ambiguous.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Two images: one showing a single check box ambiguously
labelled "Progress bar in left of statusbar", the other
making the choice explicit with radio buttons labelled
"Left" and "Right" under the heading "Status
bar progress indicator position:"</phrase>
</textobject>
</mediaobject>
</figure>
<para>Dans cet exemple, la case à cocher seule est ambiguë car la position de « l'indicateur de progression » n'est pas clair si la case n'est pas cochée. Deux boutons radio sont préférables dans ce cas : ils clarifient les options.</para>
</listitem>
<!-- CB-Fig: Again, callouts, shorten caption. The callouts should include other bullet points as well (e.g., access keys). The referring bullet item is badly phrased. Perhaps make this the one check box images for the bullets, with different callouts for different bullet points. -->
<listitem>
<para>Indiquez dans toutes les étiquettes la touche d'accès permettant à l'utilisateur de cocher ou décocher une case directement à partir du clavier.</para>
</listitem>
<listitem>
<para>Dans le cas d'une sélection multiple, si la case à cocher représente une propriété définie pour certains objets de la sélection et non définie pour d'autres, affichez la case à cocher dans son état mixte. Par exemple :</para>
<figure>
<title>Cases à cocher (à droite) affichant les propriétés d'une sélection multiple de fichiers dans Nautilus (à gauche)</title>
<mediaobject>
<imageobject>
<imagedata depth="170" fileref="images/controls-check-boxes-mixed.png" format="PNG" width="223"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-check-boxes-mixed.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Check boxes showing the Hidden, Readable and Writeable
states of two selected files in Nautilus. Both files are hidden,
neither are writeable, but one is readable. The Readable check
box is therefore shown in its mixed state.</phrase>
</textobject>
</mediaobject>
</figure>
<para>In this example, both selected files are hidden (since their
filenames start with "."), and the emblems on their icons show
that neither file is writeable, but one is readable. The
<guilabel>Readable</guilabel> check box is therefore shown in its
mixed state. <remark>At time of writing, the exact visual appearance
of a mixed state check box in gtk was undecided</remark>.</para>
<para>Lorsqu'une case à cocher est dans l'état mixte :</para>
<itemizedlist>
<listitem>
<para>cliquer une fois sur la boîte cochera la case et appliquera le réglage (si autorisé) à tous les objets de la sélection multiple,</para>
</listitem>
<listitem>
<para>cliquer une deuxième fois sur la boîte décochera la case et supprimera ce réglage (si autorisé) pour tous les objets de la sélection multiple,</para>
</listitem>
<listitem>
<para>cliquer une troisième fois sur la case remettra la case dans son état mixte et restaurera la valeur originale du réglage pour chaque objet sélectionné.</para>
</listitem>
</itemizedlist>
<!-- CB-Ed: Mixed state check boxes are a polemic-ridden issue. Data to back this up? -->
</listitem>
<listitem>
<para>Dénommez un groupement de cases à cocher à l'aide d'un en-tête descriptif au dessus ou à gauche du groupement.</para>
</listitem>
<listitem>
<para>Utilisez un cadre autour du groupe si nécessaire, mais souvenez-vous que de l'espace vide fonctionne aussi bien et conduit à une boîte de dialogue à l'aspect moins cloisonné.</para>
</listitem>
<listitem>
<para>Ne mettez pas plus d'environ huit cases à cocher dans un même groupe. Si vous avez besoin de plus de huit, essayez d'utiliser de l'espacement, des étiquettes d'en-tête ou des cadres pour les diviser en groupes plus petits. Sinon, envisagez l'utilisation d'une liste de cases à cocher à la place — mais, probablement, vous devriez également réfléchir à la manière de simplifier votre interface utilisateur.</para>
</listitem>
<listitem>
<para>Essayez d'aligner les groupes de cases à cocher verticalement plutôt qu'horizontalement car cela les rend plus facile à parcourir. N'utilisez des alignements horizontaux ou en tableau que si l'apparence de la fenêtre en est notablement améliorée.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="controls-radio-buttons">
<title>Boutons radio</title>
<para>Les boutons radio sont utilisés en groupe pour faire un choix parmi un ensemble d'options mutuellement exclusives. Un seul bouton radio dans un groupe peut être sélectionné à la fois. Comme pour les cases à cocher, n'utilisez pas les boutons radio pour lancer des actions.</para>
<figure>
<title>Un groupement typique de boutons radio</title>
<mediaobject>
<imageobject>
<imagedata depth="105" fileref="images/controls-radio-buttons.png" format="PNG" width="352"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-radio-buttons.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A typical group of three radio buttons in a dialog</phrase>
</textobject>
</mediaobject>
</figure>
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>N'utilisez les boutons radio qu'en groupe de deux au minimum ; n'utilisez jamais un bouton radio tout seul. Pour représenter un réglage unique, utilisez une case à cocher ou deux boutons radio, un pour chaque état.</para>
</listitem>
<listitem>
<para>Dans un groupe, seul un bouton radio peut être sélectionné à la fois. La seule exception est lorsque le groupe affiche les propriétés d'une sélection multiple lorsqu'un ou plusieurs boutons peuvent être dans leur état mixte.</para>
</listitem>
<listitem>
<para>Ne lancez pas une action lorsque l'utilisateur clique sur un bouton radio. Mais s'il sont utilisés dans une <link linkend="windows-utility">fenêtre Propriétés ou Préférences</link> à application instantanée, mettez à jour immédiatement le réglage représenté par le bouton radio.</para>
</listitem>
<listitem>
<para>Un clic sur un bouton radio ne doit pas affecter les valeurs de tout autre contrôle. Cela peut néanmoins rendre sensible ou insensible, masquer ou afficher d'autres contrôles.</para>
</listitem>
<listitem>
<para>Si un clic sur un bouton radio affecte la sensibilité d'autres contrôles, placez le bouton radio immédiatement au dessus ou à gauche des contrôles qu'il affecte. Vous indiquerez ainsi les contrôles qui dépendent de l'état du bouton radio.</para>
</listitem>
<listitem>
<para>Utilisez la règle de <link linkend="layout-capitalization">mise en majuscule des phrases</link> pour les étiquettes des boutons radio, par exemple <guilabel>Mouvement alterné</guilabel>. Indiquez dans l'étiquette la touche d'accès permettant à l'utilisateur d'activer le bouton radio directement à partir du clavier.</para>
</listitem>
<!-- CB-Fig: "guilabel" may need to be more generic, like: Button Label, so that people don't get confused when scanning text about literals, particularly because you guys are using a lot of code references and lingo. -->
<listitem>
<para>Dans une sélection multiple, si le bouton radio représente un réglage défini pour certains objets de la sélection et non défini pour d'autres, affichez le bouton radio dans son état mixte. Par exemple :</para>
<figure>
<title>Boutons radio (à droite) affichant les propriétés d'une sélection multiple de formes dans une application de dessin (à gauche)</title>
<mediaobject>
<imageobject>
<imagedata depth="105" fileref="images/controls-radio-button-mixed.png" format="PNG" width="314"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-radio-button-mixed.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Radio buttons showing the Thick, Thin and Dashed drawing
styles of two selected shapes in a drawing application. One
shape is drawn in the thick style, the other in the dashed
style. The Thick and Dashed radio buttons are therefore shown in
their mixed state, and the Thin radio button is unset.</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Show context for drawing application. -->
<para><remark>At time of writing, the exact visual appearance of a
mixed state radio button in gtk was undecided</remark>. In this
situation, clicking any radio button in the group should set the
clicked button, and unset all the others. Thereafter, the group should
behave like a normal radio button group— there is no way to reset a
radio button to its mixed state by clicking on it. Provide a
<guibutton>Reset</guibutton> button or equivalent in the window that
allows the previous mixed settings to be restored without closing the
window or cancelling the dialog.</para>
</listitem>
<listitem>
<para>Dénommez un groupement de boutons radio à l'aide d'un en-tête descriptif au dessus ou à gauche du groupement.</para>
</listitem>
<listitem>
<para>Utilisez un cadre autour du groupe si nécessaire, mais souvenez-vous que de l'espace vide fonctionne aussi bien et conduit à une boîte de dialogue à l'aspect moins cloisonné.</para>
</listitem>
<listitem>
<para>Ne mettez pas plus d'environ huit boutons radio dans un même groupe. Si vous avez besoin de plus de huit, essayez d'utiliser à la place une <link linkend="controls-lists">liste</link> à sélection unique — mais vous devriez également réfléchir à une manière de simplifier votre interface utilisateur.</para>
</listitem>
<listitem>
<para>Essayez d'aligner les groupes de boutons radio verticalement plutôt qu'horizontalement car cela les rend plus facile à parcourir. N'utilisez des alignements horizontaux ou en tableau que si l'apparence de la fenêtre en est notablement améliorée.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="controls-toggle-buttons">
<title>Boutons bascules</title>
<para>Les boutons bascules ressemblent aux <link linkend="controls-buttons">boutons</link> normaux mais ils sont utilisés pour afficher ou modifier un état plutôt que pour initier une action. Les deux états d'un bouton bascule, activé et désactivé, sont respectivement montrés par son apparence « enfoncé » ou « non enfoncé ».</para>
<figure>
<title>Un groupement typique de boutons bascules</title>
<mediaobject>
<imageobject>
<imagedata depth="46" fileref="images/controls-toggle-buttons.png" format="PNG" width="137"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-toggle-buttons.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A group of four toggle buttons representing a choice of
measurement units: inches, centimeters, feet and meters</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: callouts -->
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>N'utilisez pas de groupes de boutons bascules dans les boîtes de dialogue à moins que des contraintes d'espace ne vous y obligent ou que vous deviez montrer une certaine cohérence avec une barre d'outils dans votre application. Les <link linkend="controls-check-boxes">cases à cocher</link> ou les <link linkend="controls-radio-buttons">boutons radio</link> sont généralement préférables car ils permettent l'usage d'étiquettes plus descriptives et sont moins facilement confondus avec d'autres types de contrôle.</para>
</listitem>
<listitem>
<para>N'utilisez les boutons bascules qu'en groupe afin qu'ils ne soient pas confondus avec des boutons classiques. Le groupe doit se comporter soit comme un groupe de cases à cocher ou comme un groupe de boutons radio selon vos besoins.</para>
</listitem>
<listitem>
<para>Indiquez dans toutes les étiquettes de boutons bascules la touche d'accès permettant d'activer ou désactiver le bouton directement à partir du clavier.</para>
</listitem>
<listitem>
<para>Dénommez un groupement de boutons bascules à l'aide d'un en-tête descriptif au dessus ou à gauche du groupement comme vous le feriez pour un groupe de cases à cocher ou de boutons radio.</para>
</listitem>
<listitem>
<para>Utilisez un cadre autour du groupe de boutons si nécessaire mais souvenez-vous que de l'espace vide fonctionne aussi bien et conduit à une boîte de dialogue à l'aspect moins cloisonné.</para>
</listitem>
<listitem>
<para>Essayez d'aligner les groupes de boutons bascules horizontalement plutôt que verticalement. C'est l'apparence normale des boutons bascules dans une barre d'outils ; l'utilisateur est plus habitué à cette disposition.</para>
</listitem>
<listitem>
<para>Ne laissez pas d'espace entre les boutons bascules d'un groupement, sinon ils risquent de sembler être sans relation ou d'être confondus avec des boutons classiques.</para>
</listitem>
<listitem>
<para>Utilisez (en anglais) les règles <link linkend="layout-capitalization">des majuscules dans les titres</link> pour les étiquettes de bouton bascule, par exemple <guibutton>No Wallpaper</guibutton>, <guibutton>Embossed Logo</guibutton>.</para>
</listitem>
<listitem>
<para>Si votre bouton bascule peut afficher du texte, une icône ou les deux, choisissez l'étiquette à afficher en moment de l'exécution en fonction des préférences utilisateur dans les menus GNOME et la boîte de dialogue Préférences des barres d'outils.</para>
</listitem>
<listitem>
<para>Utilisez la même étiquette de texte ou le même graphique pour un bouton bascule, qu'il soit activé ou pas.</para>
</listitem>
<listitem>
<para>Si le bouton bascule représente un réglage pour une sélection multiple qui est activé pour certains objets de la sélection et non activé pour les autres, affichez le bouton bascule dans son état mixte. Par exemple :</para>
<figure>
<title>Boutons bascules (à droite) affichant les propriétés d'une sélection multiple de formes dans une application de dessin (à gauche)</title>
<mediaobject>
<imageobject>
<imagedata depth="108" fileref="images/controls-toggle-button-mixed.png" format="PNG" width="467"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-toggle-button-mixed.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Toggle buttons showing the Thick, Thin and Dashed
drawing styles of two selected shapes in a drawing application.
One shape is drawn in the thick style, the other in the dashed
style. The Thick and Dashed toggle buttons are therefore shown
in their mixed state, and the Thin toggle button is unset.</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: There's probably a better figure for fig 16 than this one. Also, my 2 cents on the mixed state visual issue: mixed state MUST be visually DISTINCT from "set." What I see here isn't enough (I know this isn't set yet.) -->
<remark>At time of writing, the exact visual appearance of mixed state
toggle buttons was undecided. A mixed state toggle button should
behave exactly as a mixed state check box or radio button, depending
on whether the toggle button choices are independent or mutually
exclusive, respectively.</remark>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="controls-option-menus">
<title>Listes déroulantes</title>
<para>Les listes déroulantes sont utilisées pour faire un choix parmi un ensemble mutuellement exclusif d'options. Elles peuvent être utiles lorsqu'il n'y a pas assez de place dans une fenêtre pour pouvoir utiliser un groupe de boutons radio ou une liste à choix unique qui possède la même fonctionnalité.</para>
<figure>
<title>Une liste déroulante affichant la sélection actuelle (à gauche) et la liste de choix disponibles lors d'un clic (à droite)</title>
<mediaobject>
<imageobject>
<imagedata depth="178" fileref="images/controls-option-menu.png" format="PNG" width="377"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-option-menu.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Two images, one of a drop-down list displaying its current
setting, and the other showing its popup menu of available choices
when clicked on</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Callouts, shortened caption. This can probably be collapsed into one snapshot. -->
<para>Conseils :</para>
<itemizedlist>
<listitem>
<para>N'utilisez pas de listes déroulantes avec moins de trois éléments ou plus d'une dizaine. Pour proposer le choix entre deux options, utilisez des <link linkend="controls-radio-buttons">boutons radio</link> ou des <link linkend="controls-toggle-buttons">boutons bascules</link>. Pour proposer un choix parmi plus de dix options, utilisez une <link linkend="controls-lists">liste</link>.</para>
</listitem>
<listitem>
<para>Ne lancez pas d'action lorsque l'utilisateur sélectionne un élément dans une liste déroulante. Mais si elle est utilisée dans une <link linkend="windows-utility">fenêtre Propriétés ou Préférences</link> à application instantanée, mettez à jour le réglage représenté par le menu immédiatement.</para>
</listitem>
<listitem>
<para>La sélection d'un élément dans une liste déroulante ne doit pas affecter les valeurs d'un autre contrôle. Cela peut néanmoins rendre sensible ou insensible, masquer ou afficher d'autres contrôles.</para>
</listitem>
<listitem>
<para> Donnez un nom à la liste déroulante à l'aide d'une étiquette de texte placée au dessus ou à sa gauche en utilisant les règles de <link linkend="layout-capitalization">mise en majuscule des phrases</link>. Indiquez dans l'étiquette la touche d'accès permettant à l'utilisateur de donner le focus directement à la liste déroulante.</para>
</listitem>
<listitem>
<para>Utilisez les règles de <link linkend="layout-capitalization">mise en majuscule des phrases</link> pour les éléments de la liste déroulante, par exemple <guilabel>Switched movement</guilabel>.</para>
</listitem>
<!-- CB-Ed: Change guilabel to something less literal-seeming: Menu item. -->
<listitem>
<para>Assignez une touche d'accès à chaque élément de la liste déroulante. Assurez-vous que la touche d'accès est unique dans la fenêtre ou boîte de dialogue la contenant et non pas seulement dans le menu.</para>
</listitem>
<listitem>
<para>N'attribuez pas par défaut de raccourcis clavier aux éléments de la liste déroulante. L'utilisateur peut cependant attribuer ses propres raccourcis de la manière classique s'il le souhaite.</para>
</listitem>
<listitem>
<para>N'utilisez pas de liste déroulante dans une situation où vous pourriez avoir à afficher une propriété d'une sélection multiple : les listes déroulantes ne possèdent pas le concept d'état mixte. Utilisez un groupe de boutons radio ou bascules à la place car ils peuvent afficher des états activé, désactivé ou mixte.</para>
</listitem>
<!-- CB-Fig: The bullet points probably could be illustrated in a main drop-down lists figure (17 would work) -->
<listitem>
<para>N'utilisez pas de sous-menu dans une liste déroulante.</para>
</listitem>
</itemizedlist>
<para>Vous devriez normalement utiliser des <link linkend="controls-radio-buttons">boutons radio</link> ou une <link linkend="controls-lists">liste</link> à la place de listes déroulantes car ces contrôles présentent toutes les options disponibles à la fois sans aucune interaction supplémentaire. Cependant, les listes déroulantes peuvent être préférables dans une fenêtre où :</para>
<itemizedlist>
<listitem>
<para>il y a peu d'espace disponible,</para>
</listitem>
<listitem>
<para>la liste des options peut évoluer dans le temps,</para>
</listitem>
<listitem>
<para>le contenu de la partie cachée du menu est évident d'après son étiquette ou l'élément sélectionné. Par exemple si vous avez une liste déroulante nommée « Mois : » avec l'élément « Janvier » sélectionné, l'utilisateur peut raisonnablement postuler que la liste contient les 12 mois de l'année sans avoir à regarder dedans.</para>
</listitem>
</itemizedlist>
<para>Les listes déroulantes peuvent également être utiles dans les barres d'outils pour remplacer un groupe de plusieurs boutons bascules mutuellement exclusifs.</para>
</sect1>
<sect1 id="controls-combo-boxes">
<title>Zones de liste déroulante modifiable</title>
<!-- CB-Fig: Be aware that some people may not distinguish between drop-down lists and combo boxes; that is, they are taken as two types of combo boxes, editable and uneditable (see JLF DG). -->
<!-- How odd, the whole point of a combo box is that it's a combination of a text field and a list... as such, therefore there is no such thing as an 'uneditable combo box' :o) -->
<para>Les zones de liste déroulante modifiables combinent un champ de saisie de texte et une liste déroulante contenant des valeurs prédéfinies. La sélection d'une des valeurs prédéfinies configure le champ de saisie à cette valeur.</para>
<figure>
<title>Une zone de liste déroulante modifiable avant et après que sa liste déroulante est affichée</title>
<mediaobject>
<imageobject>
<imagedata depth="200" fileref="images/controls-combo.png" format="PNG" width="304"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-combo.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Two images, one of a drop-down combination box entry field displaying its
current selection, and the other showing its drop-down list of
available choices when clicked on</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: callouts, shorten caption. -->
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>N'utilisez une zone de liste déroulante modifiable à la place d'une liste, une liste déroulante ou un groupe de boutons radio que lorsqu'il est important que l'utilisateur puisse saisir une nouvelle valeur qui n'est pas déjà dans la liste des choix prédéfinis.</para>
</listitem>
<listitem>
<para>Ne lancez pas d'action lorsque l'utilisateur sélectionne un élément dans la liste d'une zone de liste déroulante modifiable. Mais si elle est utilisée dans une <link linkend="windows-utility">fenêtre Propriétés ou Préférences</link> à application instantanée, mettez à jour le réglage représenté par la zone de liste déroulante modifiable immédiatement si possible. Si ce n'est pas possible car le contenu du champ de saisie est non valide pendant que l'utilisateur est toujours en train de saisir, mettez plutôt à jour le réglage associé lorsque la zone de liste déroulante modifiable perd le focus.</para>
</listitem>
<listitem>
<para>Si l'utilisateur saisit une valeur dans la zone de liste déroulante modifiable qui n'est pas déjà dans la liste déroulante, ajoutez-la à la liste lorsque la zone de liste déroulante modifiable perd le focus afin qu'elle puisse être sélectionnée la prochaine fois.</para>
</listitem>
<listitem>
<para>Interprétez l'entrée utilisateur dans une zone de liste déroulante modifiable sans tenir compte de la casse. Par exemple, si l'utilisateur saisit <userinput>bleu</userinput>, <userinput>Bleu</userinput> et <userinput>BLEU</userinput> dans la même zone de liste déroulante modifiable à différentes occasions, n'enregistrez qu'une seule valeur dans la liste déroulante à moins que votre application ne fasse une distinction entre les différentes formes (ce qui est normalement une mauvaise idée).</para>
</listitem>
<listitem>
<para>Nommez une zone de liste déroulante modifiable à l'aide d'une étiquette de texte placée au dessus ou à sa gauche en utilisant les règles de <link linkend="layout-capitalization">mise en majuscule des phrases</link>. Indiquez dans l'étiquette la touche d'accès permettant à l'utilisateur de donner le focus directement à la zone de liste déroulante modifiable.</para>
</listitem>
<listitem>
<para>Utilisez les règles de <link linkend="layout-capitalization">mise en majuscule des phrases</link> pour les éléments de la liste déroulante, par exemple <guilabel>Switched movement</guilabel>.</para>
</listitem>
<!-- CB-Ed: Make guilabel less literal: "List item." -->
</itemizedlist>
</sect1>
<sect1 id="controls-scrollbars">
<title>Barres de défilement</title>
<para>Souvent un objet (tel qu'un document ou une liste) ne peut pas être contenu en entier dans le contrôle qui l'affiche. Dans ces cas, une barre de défilement peut être apposée à ce contrôle. La barre de défilement modifie la partie présentement visible de l'objet dans le contrôle d'affichage : il fait glisser la vue derrière sa fenêtre selon un axe (horizontal ou vertical).</para>
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>N'affichez des barres de défilement que lorsqu'elles sont nécessaires pour faire glisser la vue. Si un objet entre en totalité dans son afficheur, ne mettez pas de barres de défilement. Si vous utilisez un objet GtkScrolledWindow, appelez la fonction <function>gtk_scrolled_window_set_policy</function> avec le paramètre GTK_POLICY_AUTOMATIC pour placer automatiquement une barre de défilement selon l'axe (ou les axes) appropriés.</para>
</listitem>
<listitem>
<para>N'utilisez <emphasis>pas</emphasis> des barres de défilement pour remplacer un curseur dans sa <link linkend="controls-sliders">glissière</link>. Les barres de défilement ne doivent être utilisées qu'apposées à une vue qu'elles modifient directement et non pas utilisées comme un contrôle commun d'entrées continues.</para>
</listitem>
<listitem>
<para>Placez les barres de défilement du côté droit du contrôle d'affichage (pour déplacer verticalement la vue) ou en bas (pour la faire glisser horizontalement). N'apposez <emphasis>pas</emphasis> les barres de défilement en haut ou du côté gauche du contrôle d'affichage.</para>
</listitem>
<listitem>
<para>Dans l'une ou l'autre direction, les barres de défilement doivent avoir la même dimension que la vue à laquelle elles sont apposées dans le sens qu'elles contrôlent. Autrement dit, les barres de défilement horizontales doivent être disposées sur toute la largeur du contrôle afficheur et les barres de défilement verticales sur toute sa hauteur.</para>
</listitem>
<listitem>
<para>Si des barres de défilement horizontales et verticales sont simultanément actives sur une vue, l'alignement imposera qu'un petit rectangle dans le coin inférieur droit, là où les ascenseurs horizontaux et verticaux se rencontrent, soit vide. Cela ne pose pas de problème.</para>
</listitem>
<listitem>
<para>Les barres de défilement doivent modifier en temps réel la vue à laquelle ils sont apposés : lorsque l'utilisateur la fait glisser ou clique dessus, la vue doit changer. Un délai serait déconcertant et aurait un impact négatif sur les possibilités de navigation des utilisateurs dans le contenu de la vue.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="controls-lists">
<title>Listes</title>
<para>Un contrôle liste permet à l'utilisateur d'examiner, manipuler ou sélectionner des éléments d'une liste. Les listes peuvent avoir une colonne ou plus et contenir du texte, des graphiques, des contrôles simples ou une combinaison des trois.</para>
<!-- CB-Fig: Looks like a table, to me, complete with table row striping and column headers. Lists are usually one column, scrollable... lists! Of text or, rarely, graphics which can be selected in order to be manipulated. Sorting also happens in tables, not lists, from my experience. -->
<!-- CFB: It's not a table because there is no way to select or manipulate individual cells, only complete rows. -->
<figure>
<title>Une simple liste à deux colonnes</title>
<mediaobject>
<imageobject>
<imagedata depth="149" fileref="images/controls-list.png" format="PNG" width="179"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-list.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Picture of list control containing two unsorted columns of
text</phrase>
</textobject>
</mediaobject>
</figure>
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Nommez les contrôles de liste avec une étiquette texte placée au dessus ou à gauche en utilisant les règles de <link linkend="layout-capitalization">mise en majuscule des phrases</link>. Indiquez dans l'étiquette la touche d'accès permettant à l'utilisateur de donner le focus directement à la liste.</para>
</listitem>
<listitem>
<para>Faites un contrôle de liste suffisamment grand pour qu'il puisse afficher au moins quatre éléments à la fois sans défilement. Pour les listes de dix éléments ou plus, augmentez cette taille minimale de manière appropriée.</para>
</listitem>
<listitem>
<para>Si la liste apparaît dans une boîte de dialogue ou dans une fenêtre utilitaire, pensez à rendre la fenêtre et la liste qu'elle contient redimensionnables afin que l'utilisateur puisse choisir le nombre d'éléments de la liste visibles à la fois sans défilement. Chaque fois que l'utilisateur ouvre cette boîte de dialogue, paramétrez ses dimensions à celles choisies par l'utilisateur la fois précédente.</para>
</listitem>
<listitem>
<para>N'utilisez pas de listes avec moins d'environ cinq éléments, à moins que le nombre d'éléments puisse augmenter dans le temps. Utilisez des <link linkend="controls-check-boxes">cases à cocher</link>, des <link linkend="controls-radio-buttons">boutons radio</link> ou une <link linkend="controls-option-menus">liste déroulante</link> s'il y a moins d'éléments.</para>
</listitem>
<listitem>
<para>N'utilisez d'en-têtes de colonnes que si :</para>
<itemizedlist>
<listitem>
<para>la liste a plus d'une colonne ou</para>
</listitem>
<listitem>
<para>la liste n'a qu'une colonne, mais l'utilisateur souhaite modifier l'ordre dans la liste (c'est rarement utile avec des listes à une seule colonne).</para>
</listitem>
</itemizedlist>
<para>Dans la plupart des autres situations, les en-têtes de colonne prennent inutilement de la place et les étiquettes en trop ajoutent au cloisonnement visuel.</para>
</listitem>
<listitem>
<para>Quand vous utilisez les en-têtes de colonne, étiquetez-les dans tous les cas. Si la colonne est trop étroite pour une étiquette explicite, dotez la colonne d'une infobulle à la place. Hormis son utilisation triviale, les technologies d'assistance pourront ainsi décrire l'usage de la colonne aux utilisateurs ayant des problèmes visuels.</para>
</listitem>
<listitem>
<para>Pensez à utiliser une liste de cases à cocher pour les listes à sélections multiples, car le fait que des sélections multiples sont possibles est ainsi mis en évidence :</para>
<figure>
<title>Une simple liste avec cases à cocher</title>
<mediaobject>
<imageobject>
<imagedata depth="133" fileref="images/controls-list-checkbox.png" format="PNG" width="160"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-list-checkbox.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Picture of list control with two columns. The first
column consists of check boxes showing whether or not the
corresponding item in the second column is selected for further
action.</phrase>
</textobject>
</mediaobject>
</figure>
<para>Si vous faites ce choix, vous devrez normalement paramétrer le contrôle liste lui-même comme étant à sélection unique, mais ce paramétrage dépend de la tâche particulière à laquelle il est associé.</para>
</listitem>
<listitem>
<para>Dans une liste à sélection multiple, affichez le nombre d'éléments présentement sélectionnés dans une étiquette textuelle statique au dessous de la liste, par exemple <guilabel>Noms sélectionnés : 3</guilabel>. Cette mention met également en évidence le fait qu'une sélection multiple est possible.</para>
</listitem>
<listitem>
<para>Pensez à placer des boutons <guibutton>Sélectionner tout</guibutton> et <guibutton>Désélectionner tout</guibutton> à côté des listes à sélection multiple si c'est approprié.</para>
</listitem>
</itemizedlist>
<sect2 id="controls-lists-sortable">
<title>Listes triables</title>
<para>Les utilisateurs préfèrent souvent trier les longues listes, soit alphabétiquement, soit numériquement, pour faciliter la recherche d'éléments. Donnez la possibilité aux utilisateurs de trier les listes longues ou multi-colonnes en cliquant sur l'en-tête de la colonne qu'ils veulent trier.</para>
<itemizedlist><title>Conseils</title>
<listitem><para>Indiquez la colonne actuellement triée en affichant une flèche vers le haut ou vers le bas dans son en-tête :</para>
<informaltable frame="all">
<tgroup align="left" cols="2">
<thead>
<row>
<entry>Ordre de tri</entry>
<entry>Sens de la flèche</entry>
<entry>Exemple</entry>
</row>
</thead>
<tbody>
<row>
<entry>Naturel</entry>
<entry>Bas</entry>
<entry>Alphabétique, plus petit nombre en premier, date la plus ancienne en premier, éléments cochés en premier</entry>
</row>
<row>
<entry>Inverse</entry>
<entry>Haut</entry>
<entry>Alphabétique inverse, plus grand nombre en premier, date la plus récente en premier, éléments décochés en premier</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</listitem>
<listitem><para>Un clic sur une colonne non triée trie la colonne dans l'ordre naturel, indiqué par l'affichage d'une flèche vers le bas dans l'en-tête.</para></listitem>
<listitem><para>Un clic sur une colonne triée dans l'ordre naturel trie à nouveau la colonne dans l'ordre inverse, indiqué par l'affichage d'une flèche vers le haut dans l'en-tête.</para>
<note><title>Listes non triées</title>
<para>Parfois, un état non-trié peut se révéler utile, par exemple pour montrer les éléments dans l'ordre où l'utilisateur les a ajoutés à la liste. Dans de tels cas, un clic sur une colonne trié en ordre inverse annule son tri, ce qui est indiqué par la suppression de la flèche dans l'en-tête de colonne.</para>
<para>Habituellement, il est toutefois plus facile d'ajouter une colonne supplémentaire que l'utilisateur peut trier de la manière habituelle, comme une colonne de nombres séquentiels par exemple.</para></note>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="controls-trees">
<title>Arborescences</title>
<para>Un contrôle arborescence permet à l'utilisateur d'examiner, de manipuler ou de sélectionner des éléments d'une liste hiérarchique. Les arborescences peuvent avoir une colonne ou plus et contenir du texte, des graphiques, des contrôles simples ou une combinaison des trois. </para>
<tip>
<title>Utilisez les arborescences avec parcimonie !</title>
<para>À cause de leur complexité par rapport aux autres contrôles, les utilisateurs novices ou de niveau intermédiaire ont souvent des problèmes à utiliser et comprendre les arborescences. Si votre application est conçue pour ce type d'utilisateurs, vous devriez réfléchir à des alternatives de présentation de l'information, telles que la vue liste ou icône de Nautilus ou les listes de navigation hiérarchiques dans l'<ulink url="http://www.gnustep.it/enrico/gworkspace/">explorateur de fichiers de GNUstep</ulink>.</para>
</tip>
<figure>
<title>Un simple contrôle arborescence avec un niveau de hiérarchie</title>
<mediaobject>
<imageobject>
<imagedata depth="277" fileref="images/controls-tree.png" format="PNG" width="343"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-tree.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Picture of tree control showing months of the year as top
level nodes, and public holidays in those months as their children</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Trees are usually used for navigation, so it's probably best to illustrate a tree in that context (GnomeCC, for example). -->
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Nommez toujours les arborescences avec une étiquette texte placée au dessus ou à gauche respectant les règles de la <link linkend="layout-capitalization">mise en majuscule des phrases</link>. Indiquez dans l'étiquette la touche d'accès permettant à l'utilisateur de donner le focus directement à l'arborescence.</para>
</listitem>
<listitem>
<para>Utilisez des en-têtes de colonnes si :</para>
<itemizedlist>
<listitem>
<para>l'arborescence a plus d'une colonne ou</para>
</listitem>
<listitem>
<para>l'arborescence n'a qu'une colonne mais l'utilisateur peut vouloir réordonner l'arborescence (c'est très rarement utile avec des arborescences à une seule colonne).</para>
</listitem>
</itemizedlist>
<para>Dans la plupart des autres situations, les en-têtes de colonne prennent inutilement de la place et les étiquettes en trop ajoutent au cloisonnement visuel.</para>
</listitem>
<listitem>
<para>Quand vous utilisez les en-têtes de colonne, étiquetez-les dans tous les cas. Si la colonne est trop étroite pour une étiquette explicite, dotez la colonne d'une infobulle à la place. Hormis son utilisation triviale, les technologies d'assistance pourront ainsi décrire l'usage de la colonne aux utilisateurs ayant des problèmes visuels.</para>
</listitem>
<listitem>
<para>Pensez à utiliser une liste de cases à cocher pour les arborescences à sélections multiples, car le fait que des sélections multiples sont possibles est ainsi mis en évidence :</para>
<figure>
<title>Une simple arborescence avec case à cocher</title>
<mediaobject>
<imageobject>
<imagedata depth="297" fileref="images/controls-tree-checkbox.png" format="PNG" width="349"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-tree-checkbox.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Picture of tree control with two columns. The first
column consists of check boxes showing whether or not the
corresponding item in the second column is selected for further
action.</phrase>
</textobject>
</mediaobject>
</figure>
<para>Si vous faites ce choix, vous devez normalement paramétrer le contrôle arborescence lui-même comme étant à sélection unique, mais ce paramétrage dépend de la tâche particulière auquel il est associé.</para>
</listitem>
<listitem>
<para>Pour les arborescences à sélection multiple, affichez le nombre d'éléments présentement sélectionnés dans une étiquette textuelle statique en dessous de l'arborescence, par exemple <guilabel>Noms sélectionnés : 3</guilabel>. Cette mention met également en évidence le fait qu'une sélection multiple est possible.</para>
</listitem>
<listitem>
<para>Pensez à disposer des boutons <guibutton>Sélectionner tout</guibutton> et <guibutton>Désélectionner tout</guibutton> à côté des arborescences à sélection multiple si c'est approprié.</para>
</listitem>
</itemizedlist>
<sect2 id="controls-trees-sortable">
<title>Arborescence triables</title>
<para>Tout comme pour les listes, l'utilisateur peut trouver utile de trier les arborescences longues ou multi-colonnes. Consultez les conseils de la <xref linkend="controls-lists-sortable"/> pour plus d'informations.</para>
</sect2>
</sect1>
<sect1 id="controls-notebooks">
<title>Bloc-notes à onglets</title>
<para>Un contrôle bloc-notes à onglets est une manière pratique d'afficher des informations apparentées dans une même fenêtre sans avoir à les afficher toutes en même temps. C'est analogue aux onglets diviseurs dans un classeur à anneaux ou à chemises.</para>
<figure>
<title>Un contrôle bloc-notes classique avec trois onglets</title>
<mediaobject>
<imageobject>
<imagedata depth="270" fileref="images/controls-notebook.png" format="PNG" width="341"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-notebook.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Picture of notebook control with three tabs</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Maybe I'm off, so if I am, then just ignore, but I'm concerned with terminology in the HIG at this point; maybe it's just one of those wizard/druid issues that are just here to stay because GNOME is GNOME, but I think people are more familiar with the term "Tabs" instead of the term "Pages," and "Tabbed pane" instead of "notebooks." That's what they are called in JLF, anyway. Callouts would also be nice here. -->
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Ne mettez pas trop de pages dans le même bloc-notes. Si vous ne pouvez pas voir tous les onglets sans les faire défiler ou sans les diviser sur plusieurs lignes, c'est probablement que vous en utilisez trop et que vous devriez utiliser un contrôle liste à la place. Voyez <link linkend="controls-too-many-tabs">l'exemple ci-dessous</link>.</para>
</listitem>
<listitem>
<para>Nommez les onglets (en anglais) en respectant les règles d'emploi <link linkend="layout-capitalization">des majuscules dans les titres</link> et utilisez des noms plutôt que des verbes, par exemple <guilabel>Font</guilabel> ou <guilabel>Alignment</guilabel>. Essayez de conserver grosso modo la même longueur pour toutes les étiquettes d'un bloc-notes.</para>
</listitem>
<listitem>
<para>N'attribuez pas de touches d'accès aux étiquettes d'onglet : vous ne pourriez plus utiliser ces raccourcis pour n'importe quel autre contrôle de <emphasis>chacune</emphasis> des pages du bloc-notes sans conflit. Même si vous arriviez à attribuer ces touches d'accès sans conflit, il reste préférable de ne pas le faire : il se pourrait qu'il ne soit pas possible d'éviter les conflits si l'application est traduite dans d'autres langues. Attribuez néanmoins une touche d'accès à tous les contrôles de chaque page.</para>
</listitem>
<listitem>
<para>Ne concevez pas un bloc-notes de façon à ce qu'une modification d'un contrôle sur une page modifie les contrôles sur d'autres pages. Il est peu probable que les utilisateurs découvrent de telles dépendances.</para>
</listitem>
<listitem>
<para>Si un contrôle ne modifie qu'une page de bloc-notes, placez-le sur cette page de bloc-notes. S'il modifie toutes les pages du bloc-notes, placez-le à l'extérieur du contrôle bloc-notes, par exemple à côté des boutons <guibutton>Valider</guibutton> et <guibutton>Annuler</guibutton> de la fenêtre.</para>
</listitem>
<listitem>
<para>Utilisez des onglets de taille proportionnée à la longueur de leurs étiquettes. Ne paramétrez pas tous les onglets à la même longueur car cela les rend plus difficiles à parcourir visuellement et limite le nombre d'onglets que peut contenir le bloc-notes sans défilement. Par exemple :</para>
<figure>
<title>Onglets de longueur fixe et proportionnelle (préférable)</title>
<mediaobject>
<imageobject>
<imagedata depth="92" fileref="images/controls-notebook-tabs.png" format="PNG" width="475"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-notebook-tabs.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Side-by-side comparison of one notebook whose tabs are
all the same width, and one whose tabs are only wide enough to
accommodate the tab labels. The latter takes up around 33% less
screen space.</phrase>
</textobject>
</mediaobject>
</figure>
</listitem>
<!-- CB-Fig: callouts, shorter caption -->
<listitem>
<para>Même si le contenu de chaque page d'un bloc-notes prend une quantité de place différente, n'utilisez pas d'espacements plus grands que la normale autour des contrôles dans les pages « les plus vides » et ne centrez pas les contrôles sur la page.</para>
</listitem>
<listitem>
<para>Si vos étiquettes d'onglet incluent des icônes, choisissez d'afficher ou pas les icônes au moment de l'exécution selon les préférences exprimées par l'utilisateur dans les menus GNOME et la boîte de dialogue Préférences de la barre d'outils. Cependant affichez toujours la partie texte de l'étiquette.</para>
</listitem>
</itemizedlist>
<para>Si vous avez environ plus de six onglets dans un bloc-notes, utilisez un contrôle liste au lieu d'onglets pour naviguer parmi les pages de contrôles. Par exemple :</para>
<figure id="controls-too-many-tabs">
<title>Utilisation de contrôles liste quand les onglets sont trop nombreux pour entrer facilement dans le bloc-notes</title>
<mediaobject>
<imageobject>
<imagedata depth="200" fileref="images/controls-notebook-list.png" format="PNG" width="370"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-notebook-list.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Part of a window including a list control with 7 items, each
item representing a category of settings such as
"Appearance" and "Navigation". The controls in the
rest of the window change depending on which item is selected in the
list.</phrase>
</textobject>
</mediaobject>
</figure>
<para>As in this example, place the list control on the left-hand side of
the window, with the dynamic portion of the window immediately to its
right. <remark>Should this be reversed for right-to-left locales?</remark></para>
<sect2 id="controls-tab-status">
<title>Indicateurs d'état</title>
<remark>This section needs more concrete recommendations, it's currently (almost) taken verbatim from Sebastian's patch in bug #72101.</remark>
<para>Dans certaines fenêtres à onglets telles que les fenêtres de préférences, il peut être souhaitable d'indiquer l'état d'un onglet particulier. Par exemple, pour indiquer à l'utilisateur qu'une page Web est en cours de chargement ou a été chargée, qu'un nouveau message est en attente dans une conversation de messagerie instantanée donnée ou qu'un document n'a pas été enregistré. Un indicateur d'état doit être une icône placée directement à gauche de l'étiquette de l'onglet. En plus, la couleur de l'étiquette de l'onglet peut être modifiée pour indiquer un certain état. Ne vous fondez pas uniquement sur un schéma de couleurs différentes pour une indication d'état.</para>
</sect2>
</sect1>
<sect1 id="controls-progress-bars">
<title>Barres de progression</title>
<para>Les barres de progression sont des indicateurs visuels de la progression d'une tâche en cours de traitement par l'application ; elles participent de manière importante aux <link linkend="feedback-types">retours d'information</link>. Pour des indications sur l'usage d'une barre de progression dans une fenêtre de progression, consultez la <xref linkend="windows-progress"/>.</para>
<para>Dans vos applications, vous avez la possibilité d'utiliser principalement deux types de barre de progression ; les barres de progression à mesures et les barres de progression indéterminée (celles dont le curseur fait des aller-retours dans la coulisse). De plus, on distingue trois types de barres de progression à mesures.</para>
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Utilisez toujours une barre de progression à mesures lorsque la durée de la tâche peut être précisément ou approximativement prévue. Sinon utilisez un <link linkend="indeterminate-progress">indicateur de progression indéterminée</link> ou une <link linkend="progress-checklists">fenêtre à liste de contrôles</link>.</para>
</listitem>
<listitem>
<para>Assurez-vous qu'une barre de progression à mesure soit rapportée à la durée totale d'une opération ou d'une quantité totale de travail, pas uniquement à une étape isolée — exception faite de barres de progression mesurant la durée ou le travail total de l'étape en cours dans l'avancement d'une liste de vérifications.</para>
</listitem>
</itemizedlist>
<sect2 id="time-remaining">
<title>Indicateur de progression du temps restant</title>
<para>C'est une animation constituée d'une barre dont la longueur varie en indiquant le temps écoulé au cours d'une opération et d'un texte indiquant le temps restant avant l'achèvement de l'opération. Les barres de temps restant sont le type de barre de progression le plus utile.</para>
<figure>
<title>Une simple barre de progression « temps restant »</title>
<mediaobject>
<imageobject>
<imagedata width="386" fileref="images/controls-progress-time.png" format="PNG" depth="38"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-progress-time.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A simple time-remaining progress dialog</phrase>
</textobject>
</mediaobject>
</figure>
<para>Utilisez une barre de temps restant si l'application affiche une première estimation de la durée d'une opération, puis affiche périodiquement une mise à jour de l'estimation. Chaque nouvelle estimation doit se fonder sur les changements apportés au déroulement, changements qui font que l'opération se terminera plus ou moins vite. Si l'opération doit se terminer moins rapidement qu'initialement prévu, l'application peut afficher une nouvelle estimation supérieure à la précédente.</para>
</sect2>
<sect2 id="typical-time">
<title>Indicateur de progression de durée-type</title>
<para>C'est une barre dont le changement de longueur indique le temps restant rapporté à la durée habituelle de l'opération. La barre de durée-type est le type le moins précis de barre de progression à mesure, mais elle reste plus utile qu'une barre de progression indéterminée.</para>
<figure>
<title>Une simple barre de progression du « temps-type restant »</title>
<mediaobject>
<imageobject>
<imagedata depth="32" fileref="images/controls-progress-typical.png" format="PNG" width="385"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-progress-typical.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A simple 'typical time remaining' progress dialog</phrase>
</textobject>
</mediaobject>
</figure>
<para>Pour certaines opérations, vous ne pouvez pas estimer le temps restant ou la proportion de travail effectuée. Cependant, si vous savez estimer la durée typique d'une telle opération, vous pourrez informer l'utilisateur avec une barre de durée-type.</para>
<para>Si l'application sur-estime la quantité de travail effectuée, la longueur de la barre peut indiquer « pratiquement terminé » jusqu'à ce que l'opération soit effectivement terminée. Si votre application sous-estime la quantité de travail effectuée, l'application peut remplir d'un coup la partie restante de la barre lorsque l'opération est terminée.</para>
</sect2>
<sect2 id="indeterminate-progress">
<title>Indicateur de progression indéterminée</title>
<para>C'est une barre animée indiquant seulement qu'une opération est en cours et non le temps que cela va prendre. Le « pulsateur » d'un navigateur Web en est un exemple. Les barres de progression indéterminée sont le type de barre de progression le moins précis.</para>
<figure>
<title>Une simple barre de progression « durée indéterminée » ; le curseur se déplace alternativement d'une extrémité de la barre à l'autre jusqu'à la fin de l'opération</title>
<mediaobject>
<imageobject>
<imagedata depth="210" fileref="images/controls-progress-indeterminate.png" format="PNG" width="409"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-progress-indeterminate.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A simple 'indeterminate time' progress dialog,
showing a slider moving back and forth until the operation is
complete</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: Above figure may benefit from showing the slider away from the right or left edge; otherwise it looks like the other progress bars, slightly modified. -->
<para>Utilisez une barre de progression indéterminée pour donner un retour d'information uniquement pour les opérations dont la durée ne peut pas être estimée du tout.</para>
</sect2>
</sect1>
<sect1 id="controls-status-bars">
<title>Barres d'état</title>
<para>Une barre d'état est une zone en bas d'une fenêtre qui peut être utilisée pour afficher une information brève sur l'état de l'application.</para>
<figure>
<title>Une simple barre d'état</title>
<mediaobject>
<imageobject>
<imagedata depth="53" fileref="images/controls-status-bar.png" format="PNG" width="244"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-status-bar.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A statusbar at the bottom of a document window, showing
current zoom level and a status message indicating that the document
has been modified since it was last saved</phrase>
</textobject>
</mediaobject>
</figure>
<!-- CB-Fig: callouts -->
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Utilisez les barres d'état seulement dans les fenêtres d'applications ou de documents. Ne les utilisez pas dans les boîtes de dialogue, les alertes ou d'autres fenêtres secondaires.</para>
</listitem>
<listitem>
<para>Ne placez une barre d'état qu'au bas de la fenêtre.</para>
</listitem>
<listitem>
<para>N'utilisez les barres d'état que pour afficher des informations non-critiques. Cela comprend :</para>
<itemizedlist>
<listitem>
<para>des informations générales à propos du document ou de l'application. Par exemple, l'état de la connexion actuelle dans une application réseau ou la taille du document actuel dans un éditeur de texte.</para>
</listitem>
<listitem>
<para>des informations sur la tâche que l'utilisateur est en train d'accomplir. Par exemple, lorsque l'outil de sélection est utilisé dans une application de dessin « Appuyez sur la touche Maj. pour étendre la sélection ».</para>
</listitem>
<listitem>
<para>la progression d'une opération en arrière-plan. Par exemple, « Envoi vers l'imprimante », « Impression de la page 10 sur 20 », « Impression terminée ».</para>
</listitem>
<listitem>
<para>une description du contrôle ou de la zone de la fenêtre sous le pointeur de la souris. Par exemple, « Déposez les fichiers ici pour les téléverser ».</para>
</listitem>
</itemizedlist>
<para>Souvenez-vous que les barres d'état sont normalement dans le champ de vision périphérique de l'utilisateur et peuvent être masquées complètement en utilisant l'élément de menu <menuchoice><guimenu>Affichage</guimenu><guimenuitem>Barre d'état</guimenuitem></menuchoice> de l'application. L'utilisateur peut par conséquent ne jamais voir ce que vous y affichez, à moins qu'il ne sache quand et où le chercher.</para>
</listitem>
<listitem>
<para>Lorsqu'il n'y a aucun état digne d'intérêt à rapporter, laissez le panneau de la barre d'état vide plutôt que d'afficher quelque chose de ne donne aucune information comme « Prêt ». Ainsi, lorsque quelque chose intéressant apparaît dans la barre d'état, l'utilisateur est plus apte à s'en rendre compte.</para>
</listitem>
<listitem>
<para>Si vous voulez rendre tout ou partie de votre barre d'état interactive, utilisez les conventions suivantes :</para>
<itemizedlist>
<!--<listitem><para>Raised or button-like appearance for areas that respond to a single click</para></listitem>-->
<listitem>
<para>apparence incrustée pour les zones qui répondent au double-clic,</para>
</listitem>
<listitem>
<para>apparence plate pour les zones qui ne sont pas interactives.</para>
</listitem>
</itemizedlist>
<!-- CB-Ed: I have never seen a button in a statusbar area before. I'll bet this is deprecated, or should be. Do you have data to back this up? And doesn't this conflict with one of the previous bullet points: Only use statusbars to display non-critical information? A cancel button is certainly not trivial. -->
<!-- CFB: removed this recommendation for now -->
<para>Dans la <xref linkend="status-bar-figure"/>, l'apparence indique que la zone de gauche répond au double-clic (peut-être en enregistrant le document) et que l'indicateur de progression sur la droite n'est pas interactif.</para>
<figure id="status-bar-figure">
<title>Une barre d'état interactive</title>
<mediaobject>
<imageobject>
<imagedata depth="58" fileref="images/controls-status-bar-interactive.png" format="PNG" width="461"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-status-bar-interactive.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>A statusbar with a text panel that responds to a double
click, a button that responds to a single click, and a
non-interactive progress area</phrase>
</textobject>
</mediaobject>
</figure>
<para>Assurez-vous qu'un double-clic dans la zone d'état n'offre pas une fonctionnalité qui ne serait pas disponible dans la barre de menu principale de l'application ou accessible par un autre moyen.</para>
</listitem>
<listitem>
<para>Prévoyez une poignée de redimensionnement dans le coin inférieur droit de la barre d'état des fenêtres redimensionnables. Les classes dérivées de GtkStatusbar doivent utiliser la poignée de redimensionnement fournie par cette classe. Une ré-implémentation d'une barre d'état, ce qui est déconseillé, doit également ré-implémenter la poignée de redimensionnement de GtkStatusbar à la fois dans sa fonction et son apparence.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="controls-frames">
<title>Cadres et séparateurs</title>
<para>Un cadre est une boîte avec un titre que vous pouvez dessiner autour des contrôles pour les organiser en groupes fonctionnels. Un séparateur est une simple ligne horizontale ou verticale qui peut être utilisée pour diviser les fenêtres en groupes fonctionnels.</para>
<para>Les cadres avec bordure autour de leur périmètre ont traditionnellement été utilisés pour marquer des groupes de contrôles en relation. C'est avantageux car cela isole physiquement des contrôles non similaires et évite également la répétition de l'étiquette du cadre dans les étiquettes des contrôles membres individuels. Malheureusement, ils ajoutent du bruit visuel qui peut, à la fois, rendre une fenêtre plus complexe qu'elle n'est et diminuer la possibilité de parcourir rapidement les éléments de la fenêtre.</para>
<para>Plutôt que d'utiliser des cadres avec bordure, utilisez des cadres sans bordure, avec les étiquettes en gras pour que la catégorie ressorte et avec un contenu indenté. Cette disposition, combinée à un agencement et un espacement adéquats, est habituellement une meilleure alternative aux cadres avec bordure.</para>
<figure>
<title>Style de cadre préféré, utilisant des étiquettes en gras, des espacements et de l'indentation</title>
<mediaobject>
<imageobject>
<imagedata depth="256" fileref="images/controls-frames.png" format="PNG" width="288"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-frames.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Frame showing the preferred style described above</phrase>
</textobject>
</mediaobject>
</figure>
<figure>
<title>Style de cadre traditionnel utilisant des bordures (déconseillé)</title>
<mediaobject>
<imageobject>
<imagedata depth="275" fileref="images/controls-old-frames.png" format="PNG" width="296"/>
</imageobject>
<imageobject>
<imagedata fileref="images/controls-old-frames.eps" format="EPS"/>
</imageobject>
<textobject>
<phrase>Frame showing the traditional style described above</phrase>
</textobject>
</mediaobject>
</figure>
<!-- <para>See <xref linkend="window-layout-spacing"/> for technical details on implementing the preferred frame style in gtk.</para> -->
<itemizedlist>
<title>Conseils</title>
<listitem>
<para>Avant d'ajouter un cadre avec un bord visible ou un séparateur dans une fenêtre, demandez-vous soigneusement si vous en avez vraiment besoin. Il est généralement mieux de faire sans, si les groupes peuvent être séparés par des espaces seulement. N'utilisez pas des cadres et des séparateurs pour compenser un mauvais agencement ou alignement de contrôles.</para>
</listitem>
<listitem>
<para>Ne mélangez pas des groupes avec et sans cadre dans la même fenêtre.</para>
</listitem>
<listitem>
<para>N'insérez pas un cadre dans un autre. Cette disposition donne un résultat cloisonné.</para>
</listitem>
<listitem>
<para>Si tous les éléments d'un groupe sont désactivés, désactivez le titre du groupe aussi.</para>
</listitem>
</itemizedlist>
</sect1>
</chapter>
|