DRAFT: Data navigator research - #899
Conversation
|
Howdy! I've finally gotten around to taking a look at this in-depth. Many thoughts. Tagging #890 too, to link the discussion over here. 1. The good stuffI love all of this:
2. Questions/thoughts/open problemsWhy a lack of complex structure?The main thing to me is the mark-level navigation, which is primarily just forward/backward through a chart. In our prior work on Bokeh, we did forward/backward (one direction) for a chart like a bar, but patterns progressively get more complex depending on chart type/usage:
The additional structure adds quite a lot to the user's experience (and is the main justification for data navigator in the first place). So, I mostly just wonder: why not have at least 2 degrees of navigation? (up/down and left/right)? In the previous prototype that I made, we had this multi-directional nav enabled. Genuinely curious if this was taken out for a reason (scoping, design choice, too complex to figure out how to wire, etc). And this leads me a bit into my second main question: Why keep ARIA on VegaChart?One of the commits (1781e1a) adds ARIA back to VegaChart, which I think is interesting. ARIA basically creates a list out of elements, which is similar to what is happening with the navigation pattern I see (based on my comment above). If ARIA is on, and the goal is to have serial/list-style navigation, then is data navigator needed? But that being said: ARIA can be a great fallback for mobile experiences, so it is worth keeping as a fallback. Data navigator could be considered a progressive enhancement, then, over ARIA as a baseline. Region navigation is childless?I love the region navigation (to axes/legend elements). Fantastic work. But there isn't a navigation down into the children from this point. And for this reason, x axis seems redundant with the main "navigate into children" region (the main marks). Like, in storybook the "Bar Navigation" example (the stacked bar) uses legend nav for operating system (amazing) as well as axis navigation for the browser (love to see it)... but then the mark area also appears to use axis navigation and enables drilling into children. I think the ideal pattern would remove the third navigation type, since it is redundnant with the x axis, and then keep legend and axis navigation, each being able to drill into children from those levels (by pressing enter). The bokeh example (previously linked) does this for stacked bars, but you can also see a stacked bar pattern here (with a schema inspector, in case it is helpful to see where your focus is located in the "structure" that data navigator also sees). Here's my rough approximation of what the "bar navigation" example is doing:
Here's my rough approximation of what I might suggest for a stacked bar chart, instead:
|


This branch contains proof of concept behavior, code is poorly written but conceptually allows us to meet the feature requirements. Major cleanup of code required before merge.
Requirements:
TAB to navigate to the chart
Navigator enter button appears on the center of the chart with user friendly text
In all cases:
ENTER enters the chart which has this navigation tree structure:
Axis (one for every axis):
Legend:
Bar Chart Content: