Launchpad Entry: jaunty-ubiquity-usability
Packages affected: ubiquity, oem-config
Unimplemented usability tasks from previous specifications, as well as some new usability tasks, will further lower the bar to being able to confidently use Ubiquity.
The installer has received a number of enhancements this cycle including a new timezone selector, an easier to use partitioning page, and the ability to jump back to individual pages from the summary page.
Over time a number of usability issues have been discovered in ubiquity. Some of these were previously planned to be fixed, but time was not permitting. Other suggested fixes are new or are progressions from recently developed functionality.
- Scott finds the timezone selection widget to be difficult, if not impossible, to use. It's choppy and seemingly selects random points on the map to focus on.
- Bob has a lot of partitions on his disk and he has to scroll the partition bars to see the entire disk.
- Joe accidentally formatted his copy of Windows XP because he was confused by the meaning of "Guided - use entire disk".
There are few interdependencies and most items can be developed independent of other items, allowing for ubiquity to remain usable as individual items land.
We will investigate porting VMWare's wrapLabel from libview to Python in order to work around bgo 101968. This will free up a fair amount of space in the UI. PARTIALLY DONE: ubiquity 1.11.7
Ubiquity will be full screened when run in only-ubiquity mode. DONE: ubiquity 1.11.5
Through discussion it has been determined that the language selector in ubiquity is redundant as users are prompted to select a language at boot. Its presence also draws the eyes away from the welcome message, which could use an update in its own right.
A specific replacement for the current text was not proposed, however it was suggested that at the very least the "Please choose the language used for the installation process" string should be removed as testing has shown that instruction gets in the way when selecting one's langugage.
The suggested fix for the language selector was to replace it with a drop down box, but that could prove difficult to use, given the long list of languages, and therefor reverting to the existing language selector, or porting the language selector from oem-config, might be necessary.
Where are you?
Choosing a city on the current timezone selector has been a poor experience for a number of users. This is in part due to the automatic scrolling of the map, which can be jerky and fast; the automatic focusing on a point, which is not obvious; and the difficulty in selecting a city when several are clustered together over a small distance. Some users are also more familiar with their timezone band than they are with the nearby cities.
We will solve this by replacing the existing timezone map with a new implementation. This new map will only display the timezone bands, highlighting them as the user either mouses over them or uses the arrow keys to move between them. In the former case a selection will only occur if the user clicks on a timezone band.
The map will be rendered from SVG files in order to scale adequately, but PNG files will be used instead if that proves to be too difficult an operation on slower machines or uses too much memory.
The existing "Selected city" and "Selected region" widget groups will be replaced with "Time zone" and "Nearby city" drop down boxes.
MOSTLY DONE (needs work on map alignment): ubiquity 1.11.7
Mockups for possible future refinement:
Radio buttons for "suggested option" and "choose your own" will be added to the keyboard selection page to ease the confusion of selecting a keyboard when there are many variants as originally part of HardyUbiquityUsability. DONE: ubiquity 1.11.5 - could use some polish and Qt equivalent code.
- A "Calculate layout..." button will be added to the right of the suggested option choice, assuming there is sufficient time. This will match the functionality already found in debian-installer.
Matthew Paul Thomas expressed an interest in further reviewing this UI, so implementation may be delayed or deferred.
Prepare disk space (automatic partitioning)
Matthew Paul Thomas is looking at combining the automatic and advanced partitioning pages into a single page that retains all the functionality of the separate pages, and remains easy to use. As this could take some time to design and implement, the following changes will be made this cycle, independent of that work.
The "Guided" and "SCSI1 (0,0,0)" portions of the labels will be removed, if possible, as they are of little use in Ubiquity. DONE ubiquity 1.11.10
A warning will be added to the "use entire disk" option that indicates what operating systems will be lost if the entire disk is formatted. Care will need to be taken to ensure that this string can be translated. DONE: Still needs translation, but otherwise complete in the GTK frontend.
Matthew Paul Thomas has made additional suggestions on how to structure the existing UI: automatic_partitioning.pdf
The resize widget will be removed and functionality to replace it will be developed for the SegmentedBar widget that was developed for Intrepid. DONE ubiquity 1.11.10
The labels on the segmented bar will be moved into a separate chart to allow the segmented bar to shrink to almost any size. The labels in the key widget will display the operating system title, device name (with /dev/ stripped), and the size in human readable numbers. The plans have changed and the labels will be moved inside the bars for the next release.
The colors used for partitions that exist in both SegmentedBars will be made to match.
The rounded corners on the bars will be removed. DONE ubiquity 1.11.10
Prepare partitions (manual partitioning)
The current code creates a number of SegmentedBars in the background. This is a waste of memory, and will be rewritten to match what the automatic partitioning page does.
Who are you?
A password strength meter will be added to the right of the password input boxes. PARTIALLY DONE: Colin has added password length checking to d-i and ubiquity. Cracklib was considered, but given that it requires a dictionary, it's a no-go as we'd have to include lots of localized dictionaries.
- The password entry boxes will be elongated to encourage longer passwords.
The login automatically option does not make sense as a check box. It will be reworded or a different widget will be used, with both cases requiring further advice from usability experts. DONE: ubiquity 1.11.3
Migrate documents and settings
- The migrate documents and settings page will not be shown if nothing can be imported. This is true for most cases, but it still appears in certain situations.
- migration-assistant is being rewritten in Python, but it is retaining the same interface and thus is independent of this specification.
Ready to install
Clickable page labels will be added. Clicking on a label will take the user back to the page it refers to. Given the design of d-i, it may be necessary to force the user to go back to the summary page after going back to a component page. The labels will be rewritten to match the page titles that they refer to.
In order to accommodate this change, and to fix a long standing bug that requires the "Migration Assistant:" label to always be displayed, the summary question will be split into several questions by section.
As the warning text for partitioning changes needs additional emphasis, we will investigate using HTML or Pango.
File copy progress time remaining will be calculated and displayed in minutes, so the potential variation in time is less noticeable.
These features will be tested using the normal CD testing procedures as provided by the QA team.
BoF agenda and discussion
- Should we and how can we merge the automatic and manual partitioning pages? What would the UI for this look like?
- What should the password strength meter look like?
- Should we add the private directory option to the "Who are you?" page? What would the UI look like?
- Should we add an OpenID option?
- Should we add user picture selection to the "Who are you?" page (using the same UI that About Me has for this)?
- Where can we put the labels for the segmented_bars so that they don't force the bar to grow beyond the size of the window? Should we just use lots of different colors and line break before the labels reach beyond the end of the window?
- Do we really need to select the language twice (gfxboot-theme-ubuntu and language page)
- How do we provide localization and animation in the slideshow?
- Will be maximising by default. Not fullscreen, just maximize.
I spoke with Colin about this and we do not want to maximize the window as we want to encourage people to use the facilities of the live CD, however we will still plan to fullscreen the window when in only-ubiquity mode -- EvanDandrea
First Page (Language Selection)
- Seems like a redundant to select a language since you select in the live cd bootup (ISOLINUX)
- Change the welcome text to something more pertinent
- - At very minimum, "Please choose the language used for the...." can be removed. It's been established that it's not necessary.
- Language selection needs to be changed to something that doesn't draw your focus to. Perhaps a drop down box
Second Page (Time Zone Selection)
- Choosing a city is a bad experience.
- Will be using two svg images
- - 1 is color coded by timezone - 1 has the whole world
- These should be able to scale nicely. If memory issues, then can use a static png.
- First drop down is the time zone list
- The second drop down will be much shorter; only shows cities of the TZ you pick
- Accessibility, will be using arrow keys on the map if possible
Third Page (Keyboard selection)
- Provide radio buttons at the top
- First option is determined from you language selection, " Default Choice : US/US " Second option is "Calculate ..". This calls the method used in the alternate installer Third option is "Choose your own". Shows the old boxes below and old test box.
- More or less this is the solution, but we will mock up 1/2 dozen ways to do this
- outside of the session.
Fourth Page (Partitioning)
- At very least, get rid of "Guided". So string would be "use entire disk".
- Will be removing SCSI1 (0,0,0) for at least IDE strings
- For the labels:
- - Change from /dev/sdaX to just sdaX - Move the labels to the bottom right instead -
- Remove the rounded corners possibly on the bars
- Moving the resize handle to the bars rather than an extra widget
Fifth Page (User setup)
Login automatically doesn't make enough sense being a check box, maybe reword or present it differently DONE: ubiquity 1.11.3
- Password assistant in apt has a signal strength indicator
- Longer boxes to encourage longer passwords
- - Adding a password strength indicator
Last Page (Summary Page)
- Adding buttons to go back to a step to change
- - Need to have a button that would "return" to last step
- The labels need to match the page you are returning to
- Warning text needs improvements, HTML would be good idea for emphasis
- Adding in a slideshow
- Instead of the abrupt switch in windows, you can possibly just render the install progress
- inside of the window
- Need to check if window manager hints can be set to hide the close button once install starts