-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathindex.html
2029 lines (1216 loc) · 94.5 KB
/
index.html
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
<!DOCTYPE html>
<html lang="en">
<head>
<title>Mobile Web Best Practices 2.0</title>
<meta charset='utf-8'>
<script src='http://www.w3.org/Tools/respec/respec-w3c-common'
async class='remove'></script>
<script class='remove'>
var respecConfig = {
specStatus: "ED",
shortName: "mobile-bp",
editors: [
{ name: "Jo Rabin",
company: "mTLD Mobile Top Level Domain (dotMobi)",
note: "first version"}
, { name: "Charles McCathieNevile",
company: "Opera Software",
note: "early drafts"}
],
wg: "Web and Mobile Interest Group",
wgURI: "http://www.w3.org/Mobile/IG/",
wgPublicList: "public-web-mobile",
format: "markdown"
};
</script>
</head>
<body>
<section id='sotd'>
</section>
<section id="abstract">
This document specifies Best Practices for delivering Web content to mobile devices. The principal objective is to improve the user experience of the Web when accessed from such devices.
The recommendations refer to delivered content and not to the processes by which it is created, nor to the devices or user agents to which it is delivered.
It is primarily directed at creators, maintainers and operators of Web sites. Readers of this document are expected to be familiar with the creation of Web sites, and to have a general familiarity with the technologies involved, such as Web servers and HTTP. Readers are not expected to have a background in mobile-specific technologies.
</section>
<section id='bp-summary'>
The following Best Practices are discussed in this document and listed here for convenience. There is also <a href="http://www.w3.org/TR/mobile-bp/summary">a free-standing summary</a>.
</section>
## Introduction
### Purpose of the Document
This document sets out a series of recommendations designed to improve the user experience of the Web on mobile devices.
The recommendations are offered to creators, maintainers and operators of Web sites and are intended as the basis for assessing conformance to the mobileOK trustmark, which is described in the <a href="http://www.w3.org/2005/01/BPWGCharter/Overview.html">Mobile Web Best Practices Working Group Charter</a> and is not developed in this document. <span> At the time of writing of this document, documents describing mobileOK and techniques for implementing the Best Practice recommendations are being worked on.</span>
### How the Best Practices are Organized
The document is organized as follows:
1. Introduction. Describes the audience, purpose and scope of the document.
2. Requirements. An illustration of the type of problems that the Best Practices are intended to ameliorate.
3. Delivery Context. Discusses the environment within which mobile access to the Web is realized, with particular reference to adaptation.
4. Overview of Best Practices. A discussion of the organization of the Best Practices, and sources from which they were derived.
5. Best Practices. The statements themselves.
6. Conformance and mobileOK. A brief conformance statement and reference to the mobileOK documentation.
7. Appendices
Sources
Related Reading
Acknowledgements
References
### Audience
Readers of this document are expected to be familiar with the creation of Web sites, and to have a general familiarity with the technologies involved, such as Web servers and HTTP. Readers are not expected to have a background in mobile-specific technologies.
Our intention is to make it clear to all involved what the Best Practices are, and hence establish a common basis of understanding. As a result of wishing to be clear to those not already involved in the development of mobile friendly content, some of our statements may appear to be obvious or trivial to those with experience in this area.
The document is not targeted solely at developers; others, such as interaction and graphic designers are encouraged to read it.
### Scope
The scope of these Best Practices is laid out in "Scope of Mobile Web Best Practices" [[Scope]]. In summary, this document refers primarily to the extension of Web browsing onto mobile devices.
The Best Practice recommendations refer to delivered content. While they are clearly relevant to the processes of content creation and rendering on devices, they are not intended to be Best Practices for those activities.
As the goal of the document is to specify Best Practices for delivery to mobile devices, statements that do not have a specific mobile aspect are not included. In particular, many Web Content Accessibility [[WCAG]] guidelines are general to all forms of Web access and are not repeated here unless they have a specific mobile interpretation. Examples of general good practice which have a specific mobile interpretation include "Error Messages" and "Color".
See [**B Related Reading**](#related) for information about the related topics of Internationalization, Web Accessibility and Device Independence.
#### Phasing
As discussed in the Scope document [[Scope]] there are many aspects to Mobile Web Best Practices. At present, for example, the design and construction of many Web sites and pages make for a poor user experience when they are viewed on a mobile device.
The quality of the user's Web experience via a mobile device depends significantly on the usability of Web sites, of browsers, and of the device itself. Although browser usability and device usability are important (for reading, navigating, and interacting with content), this document focuses primarily on Best Practices for improving site usability.
In future phases other aspects may be considered - e.g. Best Practices as applied to adaptation and devices. Also in future phases the scope of the recommendations may be extended beyond "Traditional Web Browsing" into fields such as multimodal interaction.
### Relationship to other Best Practices and recommendations
These recommendations are in part derived from the Web Content Accessibility Guidelines [[WCAG]]. As noted above, WCAG guidelines are supplementary to the Mobile Web Best Practices, whose scope is limited to matters that have a specific mobile relevance.
This document builds on some of the concepts described by the [Device Independence Working Group](http://www.w3.org/2001/di/) (DIWG) in the Device Independence Principles [[DIP]]. The document discusses device and delivery channel characteristics, which the DIWG has named "Delivery Context" [[DCODI]]. In addition, the document uses some terminology from DIWG's Glossary of Terms for Device Independence [[DIGLOSS]].
The BPWG <span>is developing</span> a companion document describing techniques [[Techniques]] by which the Best Practice statements in this document can be implemented.
### Longevity and Versioning
The Best Practices have been written at a level of generality that allows them to be applicable across a range of markup languages. They have been written with enduring properties of mobile access to the Web in mind. While the factors identified in <a href="#default-delivery-context">3.7 Default Delivery Context</a>, such as screen dimensions, will change over time, it seems likely that the distinguishing features of mobile access such as cost and difficulty of input will remain issues.
This document may be reviewed from time to time. When necessary, an updated version will be released with clear documentation as to the changes that have been introduced.
## Requirements
This section discusses the requirements of the Mobile Web Best Practice statements in section 5. The statement of requirements is intended to be illustrative rather than exhaustive or complete.
### Presentation Issues
Today, Many Web pages are laid out for presentation on desktop size displays, and exploit capabilities of desktop browsing software.
Accessing such a Web page on a mobile device often results in a poor or unusable experience. Contributing factors include pages not being laid out as intended. Because of the limited screen size and the limited amount of material that is visible to the user, context and overview are lost.
Because of the limited screen size, the subject matter of the page may require considerable scrolling to be visible, especially if the top of the page is occupied by images and navigation links. In these cases the user gets no immediate feedback as to whether their retrieval has resulted in the right content.
It is particularly important in the mobile context to help the user create a mental image of the site. This can be assisted by adopting a consistent style <span>and can be considerably diminished by an uneven style.</span>
### Input
Mobile device input is often difficult when compared with use of a desktop device equipped with a keyboard. Mobile devices often have only a very limited keypad, with small keys, and there is frequently no pointing device.
One of the difficulties of the mobile Web is that URIs are very difficult to type. Lengthy URIs and those that contain a lot of punctuation are particularly difficult to type correctly.
Because of the limitations of screen and input, forms are hard to fill in. This is because navigation between fields may not occur in the expected order and because of the difficulty in typing into the fields.
While many modern devices provide back buttons, some do not, and in some cases, where back functionality exists, users may not know how to invoke it. This means that it is often very hard to recover from errors, broken links and so on.
### Bandwidth and Cost
Mobile networks can be slow compared with fixed data connections and often have a measurably higher latency. This can lead to long retrieval times, especially for lengthy content and for content that requires a lot of navigation between pages.
Mobile data transfer often costs money. The fact that mobile devices frequently support only limited types of content means that a user may follow a link and retrieve information that is unusable on their device.
Even if the content type can be interpreted by their device there is often an issue with the experience not being satisfactory - for example, larger images may only be viewable in small pieces and require considerable scrolling.
Web pages can contain content that the user has not specifically requested - especially advertising and large images. In the mobile world this extra material contributes to poor usability and may add considerably to the cost of the retrieval.
### User Goals
Mobile users typically have different interests to users of fixed or desktop devices. They are likely to have more immediate and goal-directed intentions than desktop Web users. Their intentions are often to find out specific pieces of information that are relevant to their context. An example of such a goal-directed application might be the user requiring specific information about schedules for a journey they are currently undertaking.
Equally, mobile users are typically less interested in lengthy documents or in browsing. The ergonomics of the device are frequently unsuitable for reading lengthy documents, and users will often only access such information from mobile devices as a last resort, because more convenient access is not available.
### Advertising
Developers of commercial Web sites should note that different commercial models are often at work when the Web is accessed from mobile devices as compared with desktop devices. For example, some mechanisms that are commonly used for presentation of advertising material (such as pop-ups, pop-unders and large banners) do not work well on small devices and are therefore contrary to Best Practice recommendations such as [CENTRAL_MEANING], [LARGE_GRAPHICS] and [POP_UPS].
It is not the intention of the MWI to limit or to restrict advertising; rather it is the intention that the user experience of the site as a whole, including advertising, if any, is as effective as possible.
### Device Limitations
As noted above, the restrictions imposed by the keyboard and the screen typically require a different approach to page design than for desktop devices. As detailed in the Scope document [[Scope]], various other limitations may apply and these have an impact on the usability of the Web from a mobile device.
Mobile browsers often do not support scripting or plug-ins, which means that the range of content that they support is limited. In many cases the user has no choice of browser and upgrading it is not possible.
Some activities associated with rendering Web pages are computationally intensive - for example re-flowing pages, laying out tables, processing unnecessarily long and complex style sheets and handling invalid markup [[T-MOB]]. Mobile devices typically have quite limited processing power which means that page rendering may take a noticeable time to complete. As well as introducing a noticeable delay, such processing uses more power as does communication with the server.
Many devices have limited memory available for pages and images, and exceeding their memory limitations results in incomplete display and can cause other problems.
### Advantages
In discussing the limitations of mobile devices for delivery of Web content it is easy to lose sight of the fact that they are extremely popular and very common.
This popularity largely stems at present from them being:
* personal
* personalizable
* portable
* connected
and increasingly multi-functional beyond their original purpose of voice communications.
In addition to these factors, the advantages of mobile devices will increasingly include:
* location awareness
* one-handed operation
* always on
* universal alerting device
By way of illustration of some of these factors: the Web can go where you go. You do not have to remember to do something on the Web when you get back to your computer. You can do it immediately, within the context that made you want to use the Web in the first place.
Moreover, with mobile devices appearing in all shapes and forms, and with a growing variety of features like location technology, cameras, voice recognition, touch screens etc, the Web can reach a much wider audience, and at all times in all situations. It has the opportunity to reach into places where wires cannot go, to places previously unthinkable (e.g. providing medical info to mountain rescue scenes) and to accompany everyone as easily as they carry the time on their wristwatches.
Finally, today, many more people have access to mobile devices than access to a desktop computer. This is likely to be very significant in developing countries, where Web-capable mobile devices may play as similar a role in deploying wide-spread Web access as the mobile phone has played for providing "plain old telephone service".
## Delivery Context
_Delivery Context_ is used with the <a href="http://www.w3.org/TR/di-gloss/#def-delivery-context-v2">specific meaning</a> defined in the Device Independence Glossary [[DIGLOSS]].
### One Web
The recommendations in this document are intended to improve the experience of the Web on mobile devices. While the recommendations are not specifically addressed at the desktop browsing experience, it must be understood that they are made in the context of wishing to work towards "One Web".
As discussed in the Scope document [[Scope]], _One Web_ means making, as far as is reasonable, the same information and services available to users irrespective of the device they are using. However, it does not mean that exactly the same information is available in exactly the same [representation](http://www.w3.org/TR/di-gloss/#def-http-representation) across all devices. The context of mobile use, device capability variations, bandwidth issues and mobile network capabilities all affect the representation. Furthermore, some services and information are more suitable for and targeted at particular user contexts (see [5.1.1 Thematic Consistency of Resource Identified by a URI](#tc)).
Some services have a primarily mobile appeal (location based services, for example). Some have a primarily mobile appeal but have a complementary desktop aspect (for instance for complex configuration tasks). Still others have a primarily desktop appeal but a complementary mobile aspect (possibly for alerting). Finally there will remain some Web applications that have a primarily desktop appeal (lengthy reference material, rich images, for example).
It is likely that application designers and service providers will wish to provide the best possible experience in the context in which their service has the most appeal. However, while services may be most appropriately experienced in one context or another, it is considered best practice to provide as reasonable experience as is possible given device limitations and not to exclude access from any particular class of device, except where this is necessary because of device limitations.
From the perspective of this document this means that services should be available as some variant of HTML over HTTP (see [3.7 Default Delivery Context](#default-delivery-context)).
### Background to Adaptation
The widely varying characteristics of mobile devices can make it difficult for a Web site to provide an acceptable user experience across a significant range of devices. For example different devices support different markup features and different screen sizes may demand different sized images. Consequently, it is very common when delivering content to mobile devices to vary the details of the markup, format of images, image sizes, color depths and so on to suit the characteristics of the device in question. The process of altering content to enhance the user experience on particular devices is referred to as _Content Adaptation_.
We do not describe adaptation in detail in this document. For a more detailed description, readers are referred to the Device Independence Principles [[DIP]].
In addition, the sister group of the Best Practices Working Group, the [Device Description Working Group](http://www.w3.org/2005/MWI/DDWG/), is currently defining requirements for a repository of mobile device characteristics that are relevant to content adaptation.
### Adaptation Implementation Model
There are a number of different implementation models for content adaptation. On the one hand, adaptation may be quite simple and consist of determining the device type and choosing the most appropriate set of previously prepared content to match the device characteristics. At the other extreme it may be carried out in a completely dynamic way, with content formatted at the time of retrieval, taking into account not only statically determined properties, such as screen dimension, but also dynamically determined properties, such as the temporary attachment of a fully featured keyboard.
Adaptation can be carried out in a number of different points in the delivery of content to the device [[DCODI]]:
_Server Side_ adaptation implies that the content is delivered by the originating content server or application.
_In-Network_ adaptation is where the content is altered as it passes through one or more network components. Some network operators, for example, compress images before they are passed over the air to the mobile device.
_Client Side_ adaptation consists of the device accepting content and displaying it in an appropriate way for its characteristics.
Whatever the adaptation model at work, the process of adaptation should not diminish accessibility.
### Assumptions about Adaptation
In phase 1 (See <a href="#phasing">1.4.1 Phasing</a>) it is assumed that content adaptation, if any, is carried out Server Side. Future phases may consider the implications of content adaptation elsewhere, especially the issues concerning the granting of authority to third parties to carry out adaptation, prohibiting adaptation and so on. Later phases may also address multiple adaptation - i.e. the possibility that adaptation can be applied at more than one point and that In-Network adaptation may occur more than once.
It is also assumed that it is possible to create a site that is consistent with the Best Practice recommendations without carrying out adaptation at all. However it is likely that a more sophisticated and enhanced user experience will be achieved if adaptation is used.
### Establishing Context
Providing variations on the user experience that are appropriate in different cases requires the content provider to know a significant amount about the characteristics of the device, the properties of the browser in use and the transparency of the network connection to the device.
For simple sites that present an interface which is similar across a broad range of contexts the need for such information is diminished when compared with a sophisticated site that has an optimized navigation structure, presents different size images or carries out other adaptations to suit the particular delivery context.
There are several methods by which a content provider can discover information about the delivery context, such as CC/PP, UAPROF, CSS Media Queries and various outputs of the <a href="http://www.w3.org/2001/di/">Device Independence Working Group</a>. The companion Techniques [[Techniques]] document describes these methods.
### Choice of User Experience
In the interests of "One Web" (see <a href="#OneWeb">3.1 One Web</a>) considerations, the content provider may choose to allow the user to select from broad categories such as mobile or desktop presentation, where these are distinguished in the application. If the presentation option has been determined automatically, the content provider may choose to allow the user to override the automatic determination. Where a choice of presentations is available, it is good practice to record the user's preferences and to allow them to be changed.
Given an appropriate server environment, it is unlikely that the content provider will be unable to find out anything about the delivery context. However this can happen, either because details of the delivery context are not available in sufficient detail or because the server does not provide the ability to inspect and act on the information provided. In this case a "reasonable default experience" should be provided.
The details of the default experience depend upon a number of factors including, but not limited to, the geographic region in which the service is offered and the primary intention of the service (e.g. considering whether the service is primarily desktop focused vs. primarily mobile focused).
### Default Delivery Context
In order to allow content providers to share a consistent view of a default mobile experience the BPWG has defined the Default Delivery Context. This allows providers to create appropriate experiences in the absence of adaptation and provides a baseline experience where adaptation is used. The Default Delivery Context has been determined by the BPWG as being the minimum delivery context specification necessary for a reasonable experience of the Web. It is recognized that devices that do not meet this specification can provide a reasonable experience of other non-Web services.
It is also recognized that this specification is made against the background of demographic, cultural and economic assumptions. Content providers may choose to provide services that demand a different or lower delivery context specification, but should try to provide an experience that exploits the capabilities of the Default Delivery Context in order to provide the best possible experience for that context.
It is stressed that many devices exceed the capabilities defined by the DDC. Content providers are encouraged not to diminish the user experience on those devices by developing only to the DDC specification, and are encouraged to adapt their content, where appropriate, to exploit the capabilities of the actual device.
In summary, the purpose of defining the DDC is to support the following rules:
* If an <a href="http://www.w3.org/TR/di-gloss/#def-adaptation">adaptation process</a> is used, then information that is known about the actual Delivery Context should (see [5.1.2 Exploit Device Capabilities](#lcd)) be used to vary the delivered content to make it more suitable for that specific Delivery Context or to provide an enhanced user experience.
* If the delivered content does not result from an [adaptation process](http://www.w3.org/TR/di-gloss/#def-adaptation) - e.g. the content is statically defined as HTML stored in files, or the details of the Delivery Context cannot adequately be determined, then the delivered content should be suitable for the Default Delivery Context and should comply with the Best Practice statements.
The Default Delivery Context is defined as follows:
<dl><dt class="label">Usable Screen Width</dt><dd>
120 pixels, minimum.
</dd><dt class="label">Markup Language Support</dt><dd>
XHTML Basic 1.1 [[XHTML-Basic]] delivered with content type `application/xhtml+xml`.
</dd><dt class="label">Character Encoding</dt><dd>
UTF-8 [[UTF-8]].
</dd><dt class="label">Image Format Support</dt><dd>
JPEG.
GIF 89a.
</dd><dt class="label">Maximum Total Page Weight</dt><dd>
20 kilobytes.
</dd><dt class="label">Colors</dt><dd>
256 Colors, minimum.
</dd><dt class="label">Style Sheet Support</dt><dd>
CSS Level 1 [[CSS]]. In addition, CSS Level 2 [[CSS2]] `@media` rule together with the `handheld` and `all` media types (see [CSS 2 Media Types](http://www.w3.org/TR/REC-CSS2/media.html)).
</dd><dt class="label">HTTP</dt><dd>
HTTP/1.0 [[HTTP1.0]] or more recent [[HTTP1.1]].
</dd><dt class="label">Script</dt><dd>
No support for client side scripting.
</dd></dl>
## Structure of Best Practice Statements
<dl><dt class="label">The Heading</dt><dd>
The functional area that is addressed by the statements.
</dd><dt class="label">The Statements</dt><dd>
One or more Best Practice statements, identified in the following way:
<div class="practice">
<p>
<span id="EXAMPLE" class="practicelab">EXAMPLE</span>
</p>
<p class="practicedesc">
This is a Best Practice statement.
</p>
</div>
</dd><dt class="label">What it means</dt><dd>
An explanation of the significance of the statements under this heading.
</dd><dt class="label">How to do it</dt><dd>
A discussion of techniques and some suggestions as to how to implement. The BPWG is creating a separate document describing techniques [[Techniques]] in more detail.
</dd><dt class="label">What to Test</dt><dd>
The aspects of the delivered content that an external validator could examine to assess conformance with the Best Practice statements. This section is not present for process related statements.
In this section it is noted whether the statement is _Machine Testable_ (Automated testing is possible) or _Human Testable_ (Testing requires human assessment). Some Best Practices are partially machine testable, i.e. based on the result of an automated test, some human interaction may be required. In such cases both a Machine Testable and a Human Testable statement are present.
Some Best Practice statements use words such as "minimize" and "avoid" which are intentionally non-prescriptive. This is in order to provide guidance while leaving room to accommodate a wide variety of applications whose requirements cannot be anticipated. It also allows creativity and diversity within the same Best Practice framework. More prescriptive advice can be found in the Techniques document [[Techniques]].
</dd><dt class="label">References</dt><dd>
Where appropriate, references to related WCAG points and other immediate references from the preceding text.
</dd></dl>
## Best Practice Statements
The Best Practice statements are grouped under the following headings
* <a href="#bpgroupgeneral">5.1 Overall Behavior</a>
* [5.2 Navigation and Links](#bpgroupnavlinks)
* [5.3 Page Layout and Content](#bpgroupplayout)
* [5.4 Page Definition](#bpgrouppdefinition)
* [5.5 User Input](#bpgroupinput)
### Overall Behavior
There are some general principles that underlie delivery to mobile devices.
#### Thematic Consistency of Resource Identified by a URI
<div class="practice">
<p>
<span id="THEMATIC_CONSISTENCY" class="practicelab">THEMATIC_CONSISTENCY</span>
</p>
<p class="practicedesc">
Ensure that content provided by accessing a URI yields a thematically coherent experience when accessed from different devices.
</p>
</div>
##### What it means
This is a realization of the One Web (see <a href="#OneWeb">3.1 One Web</a>) principle, whereby content should be accessible on a range of devices irrespective of differences in presentation capabilities and access mechanism. Web sites may paginate their content in various ways corresponding to differences in device characteristics; therefore the navigation structure of the site, and possibly its technical realization, may vary according to the device class that is being served. (See also [[WebArch]]
[Section 3.5.1](http://www.w3.org/TR/webarch/#URI-persistence)).
A bookmark captured on one device should be usable on another, different type of device even if it does not yield exactly the same experience. If the page that was bookmarked is not appropriate for the device that is now using it, an alternative that is suitable should be provided.
URIs may be decorated to provide session or other information. If a URI is decorated with session information that is no longer current, then
the user should be directed to a point in the navigation hierarchy that is
appropriate to their device, in order to establish appropriate session and other
parameters.
#### Exploit <span>Device</span> Capabilities
<div class="practice">
<p>
<span id="CAPABILITIES" class="practicelab">CAPABILITIES</span>
</p>
<p class="practicedesc">
Exploit device capabilities to provide an enhanced user experience.
</p>
</div>
##### What it means
While encouraging content providers to be sensitive to the needs of the Default Delivery Context, it is not intended that this will result in a diminished experience on more capable devices. <span>Develop sites that target the
Default Delivery Context. In addition, where appropriate, use device
capabilities to provide a better user experience</span> on more capable devices.
#### Work around Deficient Implementations
<div class="practice">
<p>
<span id="DEFICIENCIES" class="practicelab">DEFICIENCIES</span>
</p>
<p class="practicedesc">
Take reasonable steps to work around deficient implementations.
</p>
</div>
##### What it means
Just as in the desktop world, there are browsers that do not respect the intentions of the content provider. There are differences in interpretation between browsers and there are also deficiencies in implementation. By deficient we mean non-support of mandatory features of a relevant standard or recommendation and other bugs or errors in implementation.
Because the software in mobile devices is frequently embedded in the device, there is no easy way to correct or enhance it once it is in the field. It is a particular challenge to provide work-arounds for these deficiencies and differences in interpretation. It is recognized that content providers may need to violate specific Best Practices in order to support their intentions on devices that exhibit deficiencies in implementation. If a device is not known to have specific limitations then content providers must comply with Best Practices.
Just as it is not the intention to recommend a least common denominator approach, neither is it the intention to recommend avoiding features that exhibit problems on some class of devices.
It is also not the intention to suggest that content providers should restrict their support to certain device types. Content providers should aim to support as wide a range of device types as is practical.
#### Testing
<div class="practice">
<p>
<span id="TESTING" class="practicelab">TESTING</span>
</p>
<p class="practicedesc">
Carry out testing on actual devices as well as emulators.
</p>
</div>
##### What it means
Any Web site should be tested in a range of browsers. Mobile browsers often show markedly different characteristics to desktop browsers. As well as assessing a site's suitability for display in reduced format, content providers are encouraged to test that the features they rely on work in actual devices.
Content providers should also test with specific features disabled, such as using text-only modes and with scripting disabled.
##### How to do it
Many manufacturers provide emulators for their device that can provide a convenient preliminary means of testing. However, in practice, many of the emulators behave in a different way to the devices they emulate. Consequently testing should be carried out in as wide a range of real devices and specific software versions as is practical.
### Navigation and Links
Because of the limitations in display and of input mechanisms, the possible absence of a pointing device and other constraints of mobile devices, care should be exercised in defining the structure and the navigation model of a Web site.
#### URIs of Site Entry Points
<div class="practice">
<p>
<span id="URIS" class="practicelab">URIS</span>
</p>
<p class="practicedesc">
Keep the URIs of site entry points short.
</p>
</div>
##### What it means
Typing URIs on mobile devices can be difficult, and it is expected that users will prefer to use alternative methods of obtaining URIs when available - such as following a hyperlink (from an e-mail, SMS or other Web
page), WAP Push, 2D bar code, color bar code, RFID tag and Bluetooth. However, typing a URI may in some cases be the only option available. By keeping site entry point URIs short it is possible to reduce the chance of error and provide a more satisfactory user experience.
##### How to do it
When accessing site entry points users should not have to enter a filename as part of the URI. If possible, configure Web sites so that they can be
accessed without having to specify a sub-domain as part of the URI.
Example:
Instead of requiring users to type
<pre>"http://www.example.org/index.html"</pre>
allow
<pre>"http://example.org"</pre>
and instead of
<pre>"http://www.example.org/example.html"</pre>
allow
<pre>"http://example.org/example"</pre>
#### Navigation Bar
<div class="practice">
<p>
<span id="NAVBAR" class="practicelab">NAVBAR</span>
</p>
<p class="practicedesc">
Provide only minimal navigation at the top of the page.
</p>
</div>
##### What it means
Provide basic navigation, which
should be placed on the top of the page. Any other secondary navigational
element may be placed at the bottom of the page if really needed. It is
important the users should be able to see page content once the page has
loaded without scrolling (see <a href="#cm">5.3.4 Navigation Bars etc. (Extraneous material)</a>).
##### How to do it
Provide the basic links on a single line.
#### Balanced Structure
<div class="practice">
<p>
<span id="BALANCE" class="practicelab">BALANCE</span>
</p>
<p class="practicedesc">
Take into account the trade-off between having too many links on a page and asking the user to follow too many links to reach what they are looking for.
</p>
</div>
##### What it means
The design should aim to provide a balance between having a large number of navigation links on a page and the need to navigate multiple links to reach content.
Scrolling a page when there are many links on it can be very cumbersome, as the scrolling action on many mobile devices selects each link in turn. On the other hand, each retrieval of a navigation page takes time and adds cost, so the number
of links on a page should not be minimized at the expense of adding page
retrievals.
Design the service so that frequently accessed information is
easily reached with a minimum number of page retrievals. Navigation to less
frequently accessed information may take more retrievals as a result. A guideline is that users become frustrated if it takes more than four retrievals to reach their objective.
Whether this can be achieved depends on the nature of the site and, in particular, how items in menus group together to provide understandable
themes.
#### Navigation Mechanisms
<div class="practice">
<p>
<span id="NAVIGATION" class="practicelab">NAVIGATION</span>
</p>
<p class="practicedesc">
Provide consistent navigation mechanisms.
</p>
</div>
##### What it means
Using the same navigation mechanisms across a service helps users orient themselves and allows them to identify navigation mechanisms more easily.
Users of devices that do not have pointing devices have to scroll between hyperlinks using the keypad. Intelligent grouping, perhaps optimized through adaptation
according to usage patterns, can assist usability.
##### How to do it
A "drill-down" method, based on major headings, can often provide an effective means of navigation; because of the linearized arrangement of content, small screen size and lack of pointing device, it is often useful to provide a
means to jump entire sections of content.
At each target of the drill-down navigation an "up" link should be provided to allow the user to jump up an entire section.
##### References
This relates to WCAG <a href="http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-clear-nav-mechanism">13.4</a>.
#### Access Keys
<div class="practice">
<p>
<span id="ACCESS_KEYS" class="practicelab">ACCESS_KEYS</span>
</p>
<p class="practicedesc">
Assign access keys to links in navigational menus and frequently accessed functionality.
</p>
</div>
##### What it means
Where there is no pointing device, assigning an access key (keyboard short cut) to a link can provide a convenient way for users to access the link and avoid navigating to the link by repeated pressing of the navigation key.
Provide the same access key for links that are repeated across pages
such as links to the home page.
##### What to test
Machine Test: Test for the presence of the `accesskey` attribute.
Human Test: Verify the presence of the `accesskey` attribute on
links such as the home page.
##### References
This relates to WCAG <a href="http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-keyboard-shortcuts">9.5</a>.
#### Link Target Identification
<div class="practice">
<p>
<span id="LINK_TARGET_ID" class="practicelab">LINK_TARGET_ID</span>
</p>
<p class="practicedesc">
Clearly identify the target of each link.
</p>
</div>
<div class="practice">
<p>
<span id="LINK_TARGET_FORMAT" class="practicelab">LINK_TARGET_FORMAT</span>
</p>
<p class="practicedesc">
Note the target file's format unless you know the device supports it.
</p>
</div>
##### What it means
Users of mobile devices may suffer undue delay and cost as a result of following links. It is important to identify where a link leads so users can make an assessment of whether following it will be of interest to them. While it is unlikely that the cost in monetary terms of a particular user following a particular link can be specified, it should be possible to give an idea of the size of the resource (in bytes or in an abstract way, e.g. large file).
Links to content that is in a different format <span>or different language</span> to that of the page the link is on (i.e. content that can only be interpreted by other applications or downloads) should be human signposted, so that users are not lead to download content that their device may not be able to use. However, bear in mind that some devices support the rendering of those formats by other applications once downloaded (e.g. music files). Additionally, users may wish to download content for later transfer to other devices altogether. So even if it is known that the user agent does not support a particular content type, that content should still be made available.
##### How to do it
Use clear, concise, descriptive
link text to help users decide whether to follow a link. Identify the
implications of following a link if the target is notably large and the
user might not anticipate this from the context.
For the <a href="#default-delivery-context">Default Delivery Context</a> all formats other than XHTML, GIF and JPG should be noted.
##### What to test
Human Test: Check for proper descriptions (e.g. no use of "Click here").
Machine Test: Check for links to non-HTML formats.
Human Test: If present check whether there is information about the format of the target of the link.
##### References
This relates to WCAG <a href="http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-content-preferences">11.3</a> and [13.1](http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-meaningful-links).
#### Image Maps
<div class="practice">
<p>
<span id="IMAGE_MAPS" class="practicelab">IMAGE_MAPS</span>
</p>
<p class="practicedesc">
Do not use image maps unless you know the <span>device</span> supports them effectively.
</p>
</div>
##### What it means
Image maps allow fast navigation providing the requesting device can support the image involved and providing there is a means of navigating the map
satisfactorily. Up, down, left, right and enter are available on most mobile
devices, even if there is no pointing device. This is usually
sufficient to allow navigation of the active regions of client-side image
maps where they are defined as geometric shapes.
Many mobile devices lack a pointing device and server-side image maps cannot be used on such devices.
##### How to do it
If only small images can be displayed, break larger images up
into smaller sections and deal with them separately.
For the <a href="#default-delivery-context">Default Delivery Context</a>, or if a satisfactory image map cannot be displayed, use a list of links with descriptive text instead.
##### What to test
<p>IMAGE_MAPS Machine Test: Send a request to the site with a <span>device</span> that does not support client-side image maps and check the `map` element is not present.
##### References
This relates to WCAG <a href="http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-redundant-server-links">1.2</a> and [9.1](http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-client-side-maps).
#### Refreshing, Redirection and Spawned Windows
<div class="practice">
<p>
<span id="POP_UPS" class="practicelab">POP_UPS</span>
</p>
<p class="practicedesc">
Do not cause pop-ups or other windows to appear and do not change the current window without informing the user.
</p>
</div>
<div class="practice">
<p>
<span id="AUTO_REFRESH" class="practicelab">AUTO_REFRESH</span>
</p>
<p class="practicedesc">
Do not create periodically auto-refreshing pages, unless you have
</p>
</div>
informed the user and provided a means of stopping it.
<div class="practice">
<p>
<span id="REDIRECTION" class="practicelab">REDIRECTION</span>
</p>
<p class="practicedesc">
Do not use markup to redirect pages automatically. Instead, configure the server to perform redirects by means of HTTP 3xx codes.
</p>
</div>
##### What it means
Each of these activities is likely to cause the user confusion, or add cost and delay to their interaction.
Some mobile devices use a separate window for input; this section does not refer to such windows.
Many mobile devices cannot support more than one window and consequently, attempting to open one will have unpredictable results.
Auto-refreshing pages are widely recognized as presenting accessibility problems. In a mobile environment they may expose the user to undue cost as
a result of such a page being left open or put unnoticed into the background. If an auto-refreshing page is demanded by the application, always provide a means of ceasing the refresh and always inform the user that the page will refresh and may expose them to higher usage costs.
While redirection is a commonly employed mechanism, it must be remembered that redirection usually requires a round-trip to the browser. This adds to delay on slow links; so use a maximum of one redirect per page and limit the number of pages that are redirected.
##### What to test
POP_UPS Machine Test: Look for the `target` attribute on links and if present check to see if it has a value different from `_self`, `_parent` or `_top`.
AUTO_REFRESH Machine Test: Check whether `meta http-equiv="refresh" content="<the same URI>"` is used.
AUTO_REFRESH Human Test: If auto-refresh is used, check that options are provided to stop any page using auto-refresh.
REDIRECTION Machine Test: Check whether `meta http-equiv="refresh" content="<a different URI>"` is used.
##### References
This relates to WCAG <a href="http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-no-periodic-refresh">7.4</a>, [7.5](http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-no-auto-forward) and [10.1](http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-avoid-pop-ups).
#### Externally Linked Resources
<div class="practice">
<p>
<span id="EXTERNAL_RESOURCES" class="practicelab">EXTERNAL_RESOURCES</span>
</p>
<p class="practicedesc">
Keep the number of externally linked resources to a minimum.
</p>
</div>
##### What it means
Each linked resource (images, style sheets and other objects) requires a separate request across the network. This may add significantly to the load time of the page in the mobile context.
##### How to do it
Minimize the number of images on a page and consolidate style information into a single sheet per page (see also <a href="#style">5.4.9 Style Sheets</a>).
##### What to test
Machine Test: Count the number of linked images, style sheets and other linked items.
Human Test: Review whether a similar effect could be obtained using fewer links.
### Page Layout and Content
This section refers to the user's perception of the delivered content. It concentrates on design, the language used in its text and the spatial relationship between constituent components. It does not address the technical aspects of how the delivered content is constructed, which is discussed in <a href="#bpgrouppdefinition">5.4 Page Definition</a>.
#### Page Content
<div class="practice">
<p>
<span id="SUITABLE" class="practicelab">SUITABLE</span>
</p>
<p class="practicedesc">
Ensure that content is suitable for use in a mobile context.
</p>
</div>
<div class="practice">
<p>
<span id="CLARITY" class="practicelab">CLARITY</span>
</p>
<p class="practicedesc">
Use clear and simple language.
</p>
</div>
<div class="practice">
<p>
<span id="LIMITED" class="practicelab">LIMITED</span>
</p>
<p class="practicedesc">
Limit content to what the user has requested.
</p>
</div>
##### What it means
Users in a mobile context are often looking for specific pieces of information, rather than browsing. Content providers should consider the likely context of use of information and, while providing the option to access all information, should offer appropriate information first. <span>See also discussion under <a href="#UserGoals">2.4 User Goals</a> and [3.1 One Web](#OneWeb).</span>
The general prescription to use clear language is of particular importance for mobile delivery, where brevity and directness are generally more desirable than a discursive style.
Writing content in the traditional journalistic "front loaded" style can assist users determining whether information is of interest to them and allow them to skip it more easily if it is not. Placing distinguishing information at the beginning of headings, paragraphs, lists, etc. can also help the user contextualize when using devices with limited screen area. See also [5.3.4 Navigation Bars etc. (Extraneous material)](#cm) for a discussion of making sure that the subject matter of the page is near the top.
Mobile users often pay for bandwidth, so offering them content that is extraneous to their needs, especially advertising, costs them time and money and contributes to an unsatisfactory experience. In general, the user's consent should be sought before initiating the download of content.
##### What to test
Human Test: Examine content to determine if, given the subject matter, it is appropriate in a mobile context.
##### References
This relates to WCAG <a href="http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-front-loading">13.8</a> and [14.1](http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-simple-and-straightforward).
#### Page Size
<div class="practice">
<p>
<span id="PAGE_SIZE_USABLE" class="practicelab">PAGE_SIZE_USABLE</span>
</p>
<p class="practicedesc">
Divide pages into usable but limited size portions.
</p>
</div>
<div class="practice">
<p>
<span id="PAGE_SIZE_LIMIT" class="practicelab">PAGE_SIZE_LIMIT</span>
</p>
<p class="practicedesc">
Ensure that the overall size of page is appropriate to the memory limitations of the device.
</p>
</div>
##### What it means
If pages are too big they may take an unduly long time to load. In addition, mobile devices typically have restrictions on the largest page they can accommodate.
On the other hand, if pages are too short then the user will be required to make multiple requests to read the relevant information. This can lead to an unnecessary delay, since each request typically takes a measurable time to complete.
The balance between pagination and scrolling is partly a matter of taste and partly a matter of necessity. Devices with severe memory restrictions can only have small pages delivered to them. Equally some devices offer a poor scrolling experience and a better page retrieval experience.
Some studies [[MF]] have been carried out in this area to test for user preferences. Some of these indicate that users prefer scrolling to click-throughs and some indicate the contrary. More research is likely to be needed in this area.
##### How to do it
For the <a href="#default-delivery-context">Default Delivery Context</a> assume the limits specified in [3.7 Default Delivery Context](#default-delivery-context).
##### What to test
PAGE_SIZE_USABLE Machine Test: Measure the total size of the markup for a page; check that it does not exceed 10 kilobytes for the Default Delivery Context.
Human Test: Check that the page is still usable (e.g. not cut in the middle of a sentence, just before the end of a section, and so on).
PAGE_SIZE_LIMIT Machine Test: Measure the total size of markup and images for a page; check that it does not go over the allowed size for the device - 20 kilobytes for the Default Delivery Context.
##### References
This relates to WCAG <a href="http://www.w3.org/TR/WAI-WEBCONTENT/wai-pageauth.html#tech-group-information">12.3</a>.
#### Scrolling
<div class="practice">
<p>
<span id="SCROLLING" class="practicelab">SCROLLING</span>
</p>
<p class="practicedesc">
Limit scrolling to one direction, unless secondary scrolling cannot be avoided.
</p>
</div>
##### What it means
The page should lay out so that simple repeated scrolling in the same direction (axis) allows the user to experience all its content. However some content (such as maps and other images) cannot be displayed without secondary scrolling.
If some element on the page requires secondary scrolling it must not cause the remainder of the page to require this. For example, if an object causes subsequent text to lay out with a significant margin to its left, then this text may not be visible once a user has scrolled past the object.
Equally, if the presence of such an object causes text to render beyond the right boundary of the page then the user will be required to scroll to read each line of text.
##### How to do it
If it is not possible to avoid presenting images that are larger than the screen size, then consider providing these images on a separate page with a link back to the main content.
In the <a href="#default-delivery-context">Default Delivery Context</a> assume a width of 120 pixels.
##### What to test
SCROLLING Machine Test: Check for `width` attributes and width style properties wider than the screen size - for the Default Delivery Context, 120 pixels.
Human Test: If it is wider than the screen size, check that the use case warrants it (e.g. maps).
Browse URIs within a site with a mobile device and observe that on pages with elements that require secondary scrolling only those elements require it, and the rest of the page requires only primary scrolling.
#### Navigation Bars etc. (Extraneous material)
<div class="practice">
<p>
<span id="CENTRAL_MEANING" class="practicelab">CENTRAL_MEANING</span>
</p>
<p class="practicedesc">
Ensure that material that is central to the meaning of the page precedes material that is not.
</p>
</div>
##### What it means
Many Web pages are designed with significant navigational and other elements at the top of or to the side of the page (e.g. Menu Bars, Breadcrumb Trails and Search Functions). This provides a convenient and well-understood navigational metaphor on large displays. However, on small displays this can result in the navigation appearing instead of the actual content of the page when the page is first retrieved.
Because it is important for the user to gain an idea of the content of the page on initial view, there should be a minimum amount of clutter preceding this - including navigation, decorative images, advertising and other material that is not central to the user's experience of the page. The user should not have to scroll significantly to find the primary content of the page.
See also <a href="#cl">5.3.1 Page Content</a> for a discussion of how writing style can help the user identify meaning.
##### How to do it
Menu selections can be placed away from the top of the page with a simple link to the selection at the top of the page. Alternatively, use meta navigation on top of the page with simple text links to
major sections of the Web site.
##### What to test