Targeted platform configurations
A platform configuration would be compromised of the OS, the web browser, interface (resolution, DPI, touch, mouse, keyboard) and device limitations (CPU, RAM). Each content producer can pick which ones they specifically want to support. We might suggest that they also publish their choices on their web site.
Overview
Configurations can be tested inside a virtual machine or using online browser matrix services. We can assume a high network speed to investigate that question separately.
Web developer mistakes
If we don't want to go into all nuance details of responsive design, the main pain points I observe:
- viewing on too small screen
- viewing on too wide screen
- if the visitor has greatly increased their font size and thus the effective pixel size became a fraction of the original or if it stops aligning with raster images
- not planning to break long words
- not planning to wrap preformatted blocks
- not allocating sufficient space for alt text
- forcing fixed padding
- nesting one or more scrollable panes inside the already scrollable viewport
- if it is taking too long to load a huge page (or complex generated code) even over wifi
- if there's input lag during interactions
- the implementation relies on the behavior of a single rendering engine with regard to an obscure quirk or an optional experimental feature
- assuming that all mouse and touchpad are equipped with more than one button and a usable scroll wheel or strip
- assuming that a user has a pointing device at all or prefers to use it instead of the keyboard when interspersed with typing
- not realizing pointer acceleration: that a mouse or touchpad may not be able to cross a big enough screen with a single stroke or that holding the cursor still on top of a small target or through a narrow tunnel can be difficult
- test with and without loading multimedia, fonts, CSS
- test with and without loading JS (except for web apps)
Emulation
- A developer need not possess all pieces of hardware on this list to ensure their app is working smoothly on a configuration from the same ball park. Calibrating some constants based on benchmark results might be needed.
- Some web browsers have a single click toggle to check rendering on small screen mobiles.
- You can adjust the cycle speed in DosBox directly.
- You can test on x86 and without GPU acceleration on a virtual machine, reduce the CPU core count, RAM and resolutions available.
- You can run an Android emulator on a PC with the same adjustments.
- You can slow down the CPU by either disabling turbo boost and locking the multiplier to its lowest value via sysfs, or by keeping the virtual machine process paused on a schedule:
while true; do
killall -STOP VirtualBox
sleep 0.1
killall -CONT VirtualBox
sleep 0.02
done
- Hardware is assumed to be purchased a few years ago usually from a low budget and most of these would still be expected to be on sale.
- Each software is assumed to be the latest version except where noted otherwise.
- Each screen is assumed to support at least 15-bit/pixel RGB high or true color unless otherwise noted.
- "sensibly purchased" is an estimate of the last date when it was still easy to acquire anew and no successor was available for a similar cost or less.
See also FOSS web browsers by engine:
./web-browsers-by-engine.md
Microcontroller
- sensibly purchased: 2012-2025
- https://github.com/Allegra42/ZEReader
- custom RTOS, Arduino Due, ESP8266, ESP32 (32-bit LX7) or RP2040 (32-bit ARM Cortex-M0+), 256-512kB RAM, at least 320x240x1, up to 4 bit/pixel, 2-4MB flash, TLS may not be supported
- browser: gemiweb0
Hand386
Legacy router
- sensibly purchased: 2004-2025
- OpenWrt, MIPS AR9331, 32MB RAM, 8MB flash, TLS may be optionally supported
- browser: gemiweb0 (scripted or for js0 CGI)
Nokia 110 4G 2021
Nokia 3210 2024
JioPhone
Nokia 6300 4G
Nokia 2780 Flip
Legacy Android
Earliest supported Android
Recent supported Android
Supported iPhone
Legacy SBC or TV box
- sensibly purchased: 2021-2025
- representative chipset: x86 (VIA Eden X4, Intel Atom CE5300) or A53 (Raspberry Pi Zero 2 W, S805X Xiaomi Mi TV Stick)
- antiX or Armbian, keyboard, mouse, 1366x768, 512MB-1GB RAM
- browsers: NetSurf, Ladybird, edbrowse, Chawan, Ferus, ELinks, Dillo
- just for fun: visurf, KolibriOS (on x86), Emacs Eww, links2, lynx, netrik, w3m
- retro: Amaya, Arena, BrowseX, Emacs w3, HV3+SEE, Konqueror (KDE 2.0), Mozilla 1.0, Mycel, NCSA-Mosaic, Netscape 2.0, Netscape 3.0, Netscape 4.5, Opera 4.0, Opera 8.5. TLS may not be supported or TLS root CA may have expired in case of firmware.
- needs porting or a VM: Arachne/Linux (svgalib), AWeb, Charon, Voyager
Laptop
- sensibly purchased: 2018-2020
- Xubuntu, 2(4)-core AMD Ryzen 3 2200U or Intel i3-8145U, keyboard, touchpad, 1600x900, 4GB RAM
- browsers: Chromium, Firefox, Tor browser (Firefox ESR), Epiphany (Gnome Web), gngr, LoboEvolution, Flying Saucer, Servoshell, Pale Moon, Basilisk, Opera 12.18 (same as used by the server of Opera mini if you don't want to fiddle with an emulator online)
- retro: Konqueror v5 (KHTML), Web-K
Desktop
- sensibly purchased: 2018-2020
- Windows, 4-core AMD Ryzen 3 2200G or Intel i3-8100, keyboard, mouse, 1920x1080, 8GB RAM
- browsers: Microsoft Edge, Google Chrome, Opera
Supported iPad
Supported MacBook Air
Navigation