1.. _touch:
2
3##########################################
4Using touch-screen devices with django CMS
5##########################################
6
7.. important::
8
9    These notes about touch interface support apply only to the **django CMS admin and editing
10    interfaces**. The visitor-facing published site is **wholly independent** of this, and the
11    responsibility of the site developer.
12
13
14*******
15General
16*******
17
18django CMS has made extensive use of double-click functionality, which lacks an exact equivalent in
19touch-screen interfaces. The touch interface will interpret taps and touches in an intelligent way.
20
21Depending on the context, a tap will be interpreted to mean *open for editing* (that is, the
22equivalent of a double-click), or to mean *select* (the equivalent of a single click), according to
23what makes sense in that context.
24
25Similarly, in some contexts similar interactions may *drag* objects, or may *scroll* them,
26depending on what makes most sense. Sometimes, the two behaviours will be present in the same view,
27for example in the page list, where certain areas are draggable (for page re-ordering) while other
28parts of the page can be used for scrolling.
29
30In general, the chosen behaviour is reasonable for a particular object, context or portion of the
31screen, and in practice is quicker and easier to apprehend simply by using it than it is to explain.
32
33Pop-up help text will refer to clicking or tapping depending on the device being used.
34
35Be aware that some hover-related user hints are simply not available to touch interface users. For
36example, the overlay (formerly, the *sideframe*) can be adjusted for width by dragging its edge,
37but this is not indicated in a touch-screen interface.
38
39
40.. _device-support:
41
42**************
43Device support
44**************
45
46Smaller devices such as most phones are too small to be adequately usable. For example, your Apple
47Watch is sadly unlikely to provide a very good django CMS editing experience.
48
49Older devices will often lack the performance to support a usefully responsive frontend
50editing/administration interface.
51
52The following devices are known to work well, so newer devices and more powerful models should also
53be suitable:
54
55* iOS: Apple iPad Air 1, Mini 4
56* Android: Sony Xperia Z2 Tablet, Samsung Galaxy Tab 4
57* Windows 10: Microsoft Surface
58
59We welcome feedback about specific devices.
60
61
62********************
63Your site's frontend
64********************
65
66django CMS's toolbar and frontend editing architecture rely on good practices in your own frontend
67code. To work well with django CMS's responsive management framework, your own site should be
68friendly towards multiple devices.
69
70Whether you use your own frontend code or a framework such as Bootstrap 3 or Foundation, be aware
71that problems in your CSS or markup can affect django CMS editing modes, and this will become
72especially apparent to users of mobile/hand-held devices.
73
74
75************
76Known issues
77************
78
79General issues
80--------------
81
82* Editing links that lack sufficient padding is currently difficult or impossible using
83  touch-screens.
84
85* Similarly, other areas of a page where the visible content is composed entirely of links with
86  minimal padding around them can be difficult or impossible to open for editing by tapping. This
87  can affect the navigation menu (double-clicking on the navigation menu opens the page list).
88
89* Adding links is known to be problematic on some Android devices, because of the behaviour of the
90  keyboard.
91
92* On some devices, managing django CMS in the browser's *private* (also known as *incognito*)
93  mode can have significant performance implications.
94
95  This is because local storage is not available in this mode, and user state must be stored in a
96  Django session, which is much less efficient.
97
98  This is an unusual use case, and should not affect many users.
99
100
101CKEditor issues
102---------------
103
104* Scrolling on narrow devices, especially when opening the keyboard inside the CKEditor, does not
105  always work ideally - sometimes the keyboard can appear in the wrong place on-screen.
106
107* Sometimes the CKEditor moves unexpectedly on-screen in use.
108
109* Sometimes in Safari on iOS devices, a rendering bug will apparently truncate or reposition
110  portions of the toolbar when the CKEditor is opened - even though sections may appear to missing
111  or moved, they can still be activated by touching the part of the screen where they should have
112  been found.
113
114
115Django Admin issues
116-------------------
117
118* In the page tree, the first touch on the page opens the keyboard which may be undesirable. This
119  happens because Django automatically focuses the search form input.
120