Accessibility

webRoid follows the accessibility settings you have already chosen on your device. There is nothing to switch on inside the app: change a setting in Android’s Settings and webRoid responds.

TalkBack

Buttons that show only an icon are read by what they do, such as “Previous command” or “Search history”. Buttons on a row say which item they belong to, such as “Options for analysis.R” or “Close analysis.R tab”. File, variable and package rows are read in one pass. Each switch in Settings is read as one control: its name, that it is a switch, and whether it is on. Editor tabs say which one is selected and add “modified” when a file has unsaved changes.

Screen titles and section headers are headings, so TalkBack’s heading navigation moves between sections.

webRoid is in English only, and TalkBack reads it in English whatever language your device is set to.

Output announces its severity

In the console and the Editor’s output panel, errors are red, warnings amber and messages grey. TalkBack reads each line’s kind first, such as “Error: could not find function ‘summry’”. On screen, warning and error lines also start with an icon, so you can tell them apart without color.

Console after a few commands. The warning from warning(“this is a warning”) is amber and starts with a triangle icon. The two errors, from stop(“an error occurred!”) and from typing y, are red and each start with a stop-sign shaped icon holding an exclamation mark

Console after a few commands. The warning from warning(“this is a warning”) is amber and starts with a triangle icon. The two errors, from stop(“an error occurred!”) and from typing y, are red and each start with a stop-sign shaped icon holding an exclamation mark, in dark mode

New output is read as it arrives, without moving you away from what you are doing. A few lines are read in full; a longer burst is read as a count of lines, the first error if there is one, and the last line. If R stops responding, the banner offering Restart R is read straight away.

Long-press actions are in the actions menu

TalkBack keeps the long press for itself, so these long-press actions are in its actions menu instead. An editor tab offers Rename tab, a variable Show variable actions, a package Show package options, a plot thumbnail Share plot and a data frame column Show column details. A History entry, which you would otherwise swipe away, offers Delete, and a console line offers Copy to clipboard for the whole line.

With a mouse, trackpad or stylus, a right-click does what a long press does.

Zooming plots without a pinch

TalkBack cannot pinch or double-tap. The full-size plot views, including a detached plot window, offer Zoom in, Zoom out and Reset zoom in the actions menu, and show the same three as buttons on the plot for anyone who can see it but cannot pinch. With a mouse or trackpad, you can also hold Ctrl and scroll; see Viewing and Zooming.

Plot detail view showing a histogram, with three round buttons in a row at the bottom of the plot: Zoom out, Reset zoom and Zoom in

Plot detail view showing a histogram, with three round buttons in a row at the bottom of the plot: Zoom out, Reset zoom and Zoom in, in dark mode

Resizing panes without dragging

The dividers between Workspace panes, and the Editor’s split divider, are thin strips that are hard to drag. Each one is a labeled control, and its actions menu moves it a step at a time: Grow the first pane and Shrink the first pane in the Workspace, Widen the left pane and Narrow the left pane in the Editor. With a keyboard, a focused divider moves with the arrow keys.

Switch Access

The actions above, for zooming a plot, moving a divider and deleting a History entry, are offered to Switch Access too, so none of them needs a pinch, a drag or a swipe.

Text size

Android’s Font size and Display size settings apply across the app, the console and the editor included. The first-launch pages and the loading screen scroll when their content no longer fits, so nothing on them is pushed off the screen at the largest sizes.

The console and the editor also have their own Font Size sliders in Settings, which change the size of code without a pinch. Android’s font size applies on top of them, so the two add up. If code wraps awkwardly, turn the slider down rather than the system setting.

The main screens are checked at the largest font size Android offers, but not every sheet and dialog has been. If a label is cut off or two controls overlap, please tell us which screen and which size.

Colour and contrast

Default Light and Default Dark meet the WCAG AA contrast standard (4.5:1) as they ship, for every text and syntax color on every surface. Errors and warnings also have an icon, so nothing depends on color alone.

The other built-in themes (Dracula, Solarized Light, Solarized Dark, Monokai, One Dark, GitHub Light and Nord) are faithful copies of palettes from other editors, and some have low-contrast comments by design.

Android 14 and later have a contrast level of Standard, Medium or High, and webRoid follows it in every theme, your own custom and imported ones included. At Medium, any text color below 4.5:1 is adjusted until it reaches it; at High, until it reaches 7:1, as far as the background allows. Only the colors that fall short change. See Contrast in the Themes guide.

Remove animations

With Settings > Accessibility > Remove animations turned on in Android, the navigation rail, the theme pickers, the find bar, the package installation banner and the floating plot overlay appear and disappear in place instead of sliding or bouncing. The loading bar still fills as R starts, because it shows real progress.

Time to take action

The floating plot overlay for a new plot closes itself after five seconds. If you have set Time to take action in Android’s accessibility settings, it waits that long instead, and it stays while you touch, drag or focus it.

Hardware keyboards

webRoid works with a Bluetooth keyboard or a keyboard case. With one attached, the console prompt has focus as soon as R has loaded (or the Editor, when it is on screen without the console), so you can type straight away. Move Focus to Editor (Ctrl+1) and Move Focus to Console (Ctrl+2) move between the two from anywhere.

In the console, Up and Down walk through your command history, Enter runs the line, Ctrl+K clears the console and Ctrl+F searches the history. When the completion list is open, Up and Down move through the suggestions, Enter or Tab inserts the highlighted one, and Escape closes it.

Press Meta+/ to see the shortcuts in Android’s keyboard shortcuts list. The full list, and how to change the Editor’s shortcuts, is in Keyboard Shortcuts.

Haptics

Short vibrations mark actions such as running code, saving a file or installing a package. To turn them off, switch off Haptic Feedback in Settings > Appearance.

Anything missing?

If something does not work as described here, or a control is not reachable the way you need, please get in touch. Accessibility problems are treated as bugs, not feature requests. To include the app’s logs with your message, see Sending a Diagnostic Report.