Open rf-uw opened 8 months ago
Thanks for reporting @rf-uw! This is super critical to address. Can you do a few things to improve the issue text?
Thanks!
Reformatted and added specific examples - will continue to update as I find other examples of problematic behavior.
Addendum: in designing resizability, I would argue that slightly violating WCAG 1.4.4 may be necessary to ensure that the core functionality of the interface is maintained - the fundamental issue here is that there isn't enough space on the screen for everything to get resized to 200%, so some compromises have to be made as to what gets resized and what doesn't; for example, forcing the "Learn" header to resize along with everything else in the tutorial means that ~1/4 of the vertical space gets taken up by a mostly empty cosmetic component. Excepting it and certain other components from resizing is technically a violation of the guideline, but would provide a lot more freedom in trying to fit everything in without losing functionality.
Thank you @rf-uw! Removing needs triage
from this, and adding needs design
. Another design consideration is how to elegantly scale down to tablet and mobile size screens as well. Some of the same layout issues occur at 100% zoom on mobile. Whoever tackles this design challenge should think about what our responsive strategy should be: hide everything in menus, automatically collapse tiles, etc? I'm excited to see what everyone comes up with!
@amyjko My design is ready for review
@leisha5 These are good brainstorms, thanks for the design proposal! A few reactions:
I think I'd recommend exploring designs that 1) do not require popups, 2) that rely on overlapping views (like a stack of views). Consider looking at the proposal in #409 for ideas, which is exploring layouts for small screens (essentially the same problem here, where large text turns a large screen small). We'd likely want to resolve these with the same design.
@amyjko I would like to work on this issue. Could you please assign me to it?
Hi @leisha5! I assume you want to resume design work on this?
Yes!
@amyjko I am unable to edit the main issue body
@leisha5 It looks like this is a limitation of non-collaborator roles; even when you're assigned an issue, you can't edit the issue body. For now, we're going to change the design process to place design proposals in comments instead. That has tradeoffs, but will work around this GitHub limitation.
Thank you for all your feedback @amyjko! As per your suggestion, I decided to focus on the project view page. The proposal in #409 used a hamburger menu, but I used an accordion-style menu for my modified proposal, as I thought it seemed more intuitive for a laptop/tablet screen. I also felt it fit in better with the existing layout. Additionally, the new design does not include pop-ups, but still involves a fair amount of window switching– I’m not sure how one can remove that aspect while maintaining 200% magnification.
My proposal involves putting the stage, guide, and palette in an accordion-style menu, with a split-screen interface with the editor. I have attached a few drawings below:
The editor occupies the left side of the screen. The right side of the screen features an accordion menu of the stage, guide, and palette. Only one thing from the menu can be open at a time, and this will have a split-view with the editor.
For example, the possible combinations are: editor and stage in Split View, editor and guide in Split View, and editor and palette. My current design does not include having the editor in full screen if none of the elements from the accordion menu are open, but that can be added.
Further design elements include having the interface components organised in two lines, instead of one scrollable line, making it more accessible for screen readers.
I like the concept. Several questions:
Expected behavior
Text and UI components should be resizable up to 200% without compromising functionality per WCAG criterion 1.4.4.
Actual behavior
Standard browser/device resizing tools can cause portions of the interface, including the code window and stage, to become obstructed/unusable. This is especially problematic in Learn, where the tutorial window takes up a significant amount of space and forces the code and stage windows into too small a space; the result is that some buttons and icons are partially or completely obscured. Opening secondary windows like the palette or guide completely obscures the stage or code window. Additionally, while a lot of components are visible/accessible at the larger text size through scrolling or toggling, this is a cumbersome way to interact with them and makes it significantly more difficult to (for example) read and write code.
The examples below are from desktop Chrome; I also tested on tablet Safari and got worse results, which I will endeavor to share in the comments.
Screenshots
An example from the tutorial (Chrome, macOS):
The interface at normal size.
The interface resized to 200% using Chrome's resizing tool. Obscured interface components circled in red. Some are still usable but visually obscured, some are not clickable, and some are gone entirely. The tutorial window, symbology bar, code window, and site settings/directory bar at the bottom are all scrollable; everything else is static.
Opening the palette completely covers the stage.
The worst-case scenario - the guide, palette, tutorial, code window, helper window, and stage window are all open at once. (Admittedly extreme, but this probably shouldn't be possible!)
Environment
What platform, OS, browser, and version are you using? Please be exact with version numbers, as different versions can result in a defect happening or not. Don't skip these; cross-browser issues are a common cause of problems.
Tested resizing on: Laptop:
Tablet:
Design Proposal
My design for this issue involves changing the relative proportions of all the current elements present on the interface, in order to better support resizing upto 200%.
I have attached a drawing below:
 As you can see, I merged the header with the site settings/directory bar at the bottom, in order to make use of the empty space at the top. I also propose icons for the ‘saved online’ and the ‘user’ elements, in order to save space. The proposed icons are a tick mark, which usually accompanies the text ‘saved online’, and the emoji chosen by the user, which usually accompanies the username as well. This created space for the symbology bar to have all its elements resized without having to scroll, making most, if not all, the interface components usable.
For the palette and guide windows, instead of opening alongside the tutorial, code window, and stage, I propose that they open as a pop-up instead. I have attached a drawing of this below:
 (A drawing of the proposed design for resizing upto 200% with the palette window, which usually opens alongside the tutorial, code window, and stage, opening as a pop-up instead)
While having the palette window open as a pop-up will visually obscure the interface, it allows resizing upto 200% with compromising as little usability as possible.