The widget configuration
Optionallock?: booleanWhether the tray is out of reach, as it is while the content has the reader's full attention: what it holds fades away while the surface it stands on keeps its place, it drops out of the tab order and the accessibility tree, and it answers no gesture until it is let back in; reachable if omitted.
Optionalmain?: booleanWhether the content stands on its own, the tray being left out of the frame rather than merely put out of reach
as lock leaves it: the column closes up, the content takes the room it held, and nothing handed to the tray
slots is shown or left in the accessibility tree. Set it where a screen is meant to be seen through rather than
moved around in, such as a sign-in or a splash; the tray stands if omitted.
Optionalwide?: booleanWhether the content is given the whole width beside the tray, rather than the reading measure it is otherwise capped at: set it where the content is a table, a chart or a map, which a window has no more room for than it has, and leave it where the content is prose, which a long line only makes harder to follow. Capped if omitted.
Optionallogo?: ComponentChildrenThe mark the app is recognised by, standing at the top of the tray, in view however the tray scrolls.
Optionalmeta?: ComponentChildrenWhat stands opposite the mark at the top of the tray, in view however it scrolls, such as the release on show.
Optionaltray?: ComponentChildrenThe standing controls the tray holds, such as the sections of the app and the filters in force. The tray carries no name of its own, so a group a reader would want to reach directly, a navigation block above all, names itself as it is put in.
Optionalinfo?: ComponentChildrenWhat stands at the bottom of the tray, in view however it scrolls, such as the reader signed in and the way out.
Optionalhead?: ComponentChildrenWhat the content of the moment is called. It stands at the top of the shell, in view however the content
scrolls, unless done stands there instead, and names the content landmark either way, so a reader arriving at
it hears which screen they are on.
Optionalmenu?: ComponentChildrenThe control opening whatever the screen holds back, standing at the end of the content header where back is
left out. It gives way to the turning mark while an exchange is in flight, and comes back once it settles.
Optionaldone?: ComponentChildrenThe way out of the content of the moment, standing at the top of the shell in place of head and
naming the content landmark while it does: a screen offering it is one the reader finishes rather than one
they simply arrived at. It is taken off show while an exchange is in flight, and comes back once it settles.
Optionalback?: ComponentChildrenThe control returning to the step before, standing at the end of the content header and taking the place menu
would have had. It gives way to the turning mark while an exchange is in flight, and comes back once it settles.
Optionalcopy?: ComponentChildrenWhat closes the content itself, such as a copyright notice. It scrolls with the content rather than standing
in a bar: where the content is short it rests at the bottom of the shell, just above foot if one stands,
and where the content runs longer it follows on after it.
Optionalfoot?: ComponentChildrenWhat stands at the bottom of the shell, in view however the content scrolls, such as the terms.
Optionalchildren?: ComponentChildrenThe content of the moment, filling the body of the content column.
The shell
Creates a shell.
Lays a screen out as two scrolling columns, the tray and the content, each carrying a header that stays in view as the column scrolls and a footer beneath what it holds; a screen with no use for the tray is laid out on the content column alone. Every slot is optional and one left out takes no room, so a screen with no tray footer closes up rather than holding a gap for it.
Waiting is stated by the shell itself: while the shared client has exchanges in flight, the frame fades, marks itself busy for assistive technology, and shows a turning mark at the end of the content header, in place of whatever navigation sits there, and
doneis taken off show along with it, so no way out is offered while the exchange it would abandon is running. Nothing else moves while it stands: a screen with no content header is not given one for the duration, and a header that stands keeps the height it had. No call site takes part, so a screen states waiting by performing its exchanges through that client and nothing else. Nothing is taken out of reach meanwhile: the content is on its way out rather than unavailable, and a gesture that must not be repeated while an exchange runs is held back by the control offering it.The columns are landmarks a reader moves between directly. The content is named by the heading it is already showing, whether that is
heador thedonestanding in for it, so a reader arriving at it hears which screen they are on. The tray carries no name of its own: what a reader wants named there is the sections or the filters it holds, which say what they are far better than a word for the whole region would, so a screen names those as it puts them in.locktakes the tray out of reach for every gesture at once, pointer and keyboard alike, so a reader is never left tabbing into something the screen is showing as unavailable; whoever sets it owes the reader somewhere to land if the focus was in the tray at the time.maingoes further and leaves the tray out of the frame altogether, for a screen a reader is meant to see through rather than move around in.The content is capped at a comfortable reading measure and centred in whatever room is left, so widening the window leaves the lines as long as they were;
widelifts the cap for content a window never has too much room for.