Hardware Diagnostics Hub
A unified hub for testing every part of your computer that can be probed from the browser — GPU, refresh rate, audio latency, microphone, webcam, keyboard, mouse, touch screen, dead pixels and color calibration. Every test below runs locally in your browser using standardised W3C and USB-IF APIs, with no installation, no upload and no telemetry leaving your device.
Reviewed by WuTools Engineering Team · Last updated
What can a browser actually test about your hardware?
Modern browsers expose a surprisingly large set of hardware-facing APIs: WebGL2 and WebGPU for the graphics card, requestAnimationFrame for the display refresh rate, Web Audio API for the sound system, getUserMedia for microphones and cameras, Pointer Events / Touch Events for mice and trackpads, Gamepad API for controllers, and the HID 1.11 standard for keyboards. Combined, these let a single web page run a credible smoke-test of every input, output and compute device on a laptop or desktop without installing anything.
There is one important boundary to understand: the browser sandbox. A web page cannot read CPU temperature, fan RPM, GPU model name (only a vendor-renderer string, often masked), or RAM speed. It cannot install drivers, write to firmware, or run the kernel-level diagnostics that vendor tools (Dell SupportAssist, HP PC Hardware Diagnostics, Asus PC Diagnostics) use. So in-browser tests are excellent for functional verification — does the device respond, does the signal go through, does the latency feel right — and useful for qualitative benchmarks, but they cannot replace OEM diagnostics for warranty disputes.
Every test on this hub runs entirely client-side. Audio, video and pointer streams are processed in JavaScript inside your tab and never sent to a server. That is good for privacy and for offline use, but it also means the results depend on your browser's implementation: Chrome, Edge, Safari and Firefox can each report slightly different numbers for the same device, especially around audio latency and refresh-rate ceiling. We document these differences below so you can interpret your own results correctly.
The diagnostics, explained — what they measure and how
GPU benchmark — WebGL2 / WebGPU rendering
Renders a known scene (typically a particle system or a tessellated mesh) and measures frames-per-second, draw calls per frame, and triangle throughput. Modern WebGPU benchmarks can drive the GPU at 50–80% of native peak on Vulkan/D3D12. Useful to compare two laptops side by side, or to verify a freshly built gaming PC reaches expected fps. Run the screen / GPU smoke test →
CPU stress test — Web Workers + Wasm SIMD
Spawns one Web Worker per logical core, each running a tight integer or floating-point loop, then measures completed iterations per second. Detects throttling: if frequency drops after 60 seconds, your cooling is at its limit. Cannot read CPU temperature directly (browsers do not expose that), but if you see the score collapse at the same time the chassis gets warm, you have your answer.
Refresh rate tester — requestAnimationFrame timing
Measures the time between consecutive vertical blanks reported by the compositor. If the browser is in sync with the display, you will see ~6.94 ms between frames at 144 Hz, ~10.0 ms at 100 Hz, ~16.67 ms at 60 Hz. Note that some browsers (notably Safari on macOS) cap rAF to the lowest connected display's rate. Open the refresh rate tester →
Audio latency tester — Web Audio API + AudioContext.getOutputTimestamp()
Generates a click via AudioContext.createOscillator(), records its arrival back through getUserMedia (loopback or microphone) and computes the round-trip latency. Adds AudioContext.baseLatency and outputLatency for headphone vs speaker scenarios. Typical desktop values: 8–25 ms; gaming headsets via USB: 15–40 ms; Bluetooth audio: 80–250 ms. Open the audio latency tester →
Microphone tester — MediaStream + Analyser node
Requests access to the default microphone via navigator.mediaDevices.getUserMedia({ audio: true }), streams the input to a Web Audio AnalyserNode, and visualises the waveform plus a real-time RMS level meter. Useful to diagnose a mic that produces no signal, has the wrong input selected, or is being suppressed by aggressive noise gating. Open the microphone tester →
Webcam tester — getUserMedia({ video: true })
Requests video, displays the live preview, and reports the negotiated resolution, frame rate, and codec. Lets you confirm that drivers, lens cover, and privacy switches are all in working order. Will refuse to start if the OS-level privacy toggle is off. Open the webcam tester →
Keyboard tester — keydown / keyup events + USB HID 1.11
Listens for KeyboardEvent.code and KeyboardEvent.key on every key, displaying which keys are currently held and reporting any 'ghost' keys that do not register. Note that many OSes intercept hotkeys (PrintScreen, Win+L, F12 in some browsers) before the browser sees them — this is normal, not a hardware fault. Use the on-screen layout to check stuck keys, broken switches and rollover (NKRO).
Mouse / click tester — Pointer Events + click counter
Detects single-click, double-click, drag distance, and total click counts per button. Helps diagnose double-click bugs (one physical click registering as two, common as switches age), drift, and pointer precision. The Pointer Events API also exposes pressure for stylus input on tablets.
Screen / pixel tester — full-colour swatches
Cycles through full-screen pure red, green, blue, white, black and primary colours. Used by panel inspectors and warranty claims to spot stuck pixels (always-on subpixels) and dead pixels (always-off subpixels). Best run with the room dim and the brightness moderate. Open the screen tester →
Touch screen tester — Touch Events + multi-touch
Records simultaneous touch points (Touch Events API supports up to 10 points on most devices) and draws a trail at each. Reveals dead zones, digitiser drift, and palm-rejection problems on 2-in-1 laptops. Will not run on devices without a touch-enabled display.
Color calibration tester — sRGB vs DCI-P3 gradients
Renders smooth gradients and standard test patterns (greyscale ramp, primary/secondary colour bars, sRGB vs P3 swatches if the browser supports the @media (color-gamut: p3) query). For real ΔE measurement you need a hardware colorimeter (X-Rite i1, Datacolor Spyder), but the visual tests catch obvious banding, tinting and gamma issues.
Dead pixel checker — single-colour fullscreen
A focused version of the screen tester: locks the display into one solid colour and lets you visually inspect each pixel. Pure black exposes stuck-on pixels, pure white exposes dead/dark pixels, and pure red/green/blue expose stuck subpixels. Most manufacturers replace a panel only above a threshold (e.g., 5 dead pixels) — check your warranty terms. Open the dead pixel checker →
Real-world scenarios where this hub helps
- Verifying a custom-built gaming PC: After assembling a new desktop, run the GPU benchmark and CPU stress test back-to-back to confirm both reach expected frame rates and that thermals don't throttle the system. Then check refresh-rate (does that 165 Hz monitor actually deliver 165 Hz?), audio latency (is the on-board codec acceptable for competitive play?), and dead-pixel test on the brand-new monitor while you can still return it.
- Pre-purchase laptop check in store: Before paying for a laptop in any electronics store — Best Buy, FNAC, MediaMarkt, Phong Vũ, Magazine Luiza — open this hub on the floor model. Two minutes of dead-pixel test, one minute of keyboard tester, and one minute on the touchpad will catch nearly every cosmetic and functional defect that a store demo conceals.
- Troubleshooting a specific peripheral: If your microphone sounds muffled, the mic tester immediately reveals whether you have a hardware issue (no signal, very low level) or a software issue (input gain at zero, wrong device selected, OS-level enhancement causing the dullness). Same logic applies to keyboards (stuck key vs key rebinding), mice (double-click bug vs sensitivity in OS), and webcams (privacy switch off vs missing driver).
- Comparing two monitors before buying: Bring a USB stick with a portable browser or use your phone in the showroom. Run the refresh rate tester and the dead pixel checker on both candidates. The numbers don't lie — a panel advertised as 144 Hz that delivers 120 Hz over HDMI 2.0 is a real and common gotcha.
- Accessibility testing: Web developers can use the keyboard tester to verify that every interactive element on their site responds to Tab, Enter, Space and arrow keys without depending on a mouse. The pointer tester helps validate touch-friendly targets (the recommended minimum is 44×44 CSS pixels per WCAG 2.5.5).
- E-sports and streaming setup audits: For competitive gaming, audio latency and input lag matter. Use the audio latency tester to compare ASIO vs WASAPI drivers, USB audio interfaces vs onboard, and the keyboard tester to verify NKRO (n-key rollover). Streamers can also confirm webcam and mic combinations through OBS-friendly browser tabs.
- Refurbished and second-hand purchases: When buying a used laptop or monitor on Marktplaats, Wallapop, Mercado Livre, Chợ Tốt, eBay or local Facebook Marketplace, this hub is the fastest end-to-end functional check. Keyboard, screen, webcam, mic, audio, touch — five minutes of testing saves a lot of regret.
Diagnostics available in this hub
| Test | Underlying API |
|---|---|
| 1 GPU (GPU Benchmark) | 1 Pa |
| 1 CPU (CPU Stress Test) | 1 Pa |
| 1 Hz (Refresh Rate Tester) | 1 Pa |
| 1 ms (Audio Latency Tester) | 1 Pa |
| 1 mic (Microphone Tester) | 1 Pa |
| 1 cam (Webcam Tester) | 1 Pa |
| 1 kbd (Keyboard Tester) | 1 Pa |
| 1 mouse (Mouse / Click Tester) | 1 Pa |
| 1 px (Screen / Pixel Tester) | 1 Pa |
| 1 touch (Touch Screen Tester) | 1 Pa |
| 1 ΔE (Color Calibration Tester) | 1 Pa |
| 1 dead-px (Dead Pixel Checker) | 1 Pa |
Frequently asked questions about browser-based hardware testing
How accurate is the browser-based GPU benchmark vs a native one like 3DMark?
Less accurate, but still useful. WebGPU and WebGL2 add JavaScript and JIT-compilation overhead that native APIs (Direct3D 12, Vulkan, Metal) avoid, so absolute fps numbers run roughly 20–40% lower than native. However, the ratio between two GPUs in a browser benchmark is usually close to their ratio in 3DMark — so for comparing your laptop today to your laptop after a driver update, or comparing two machines at a store, it works well.
Why does my 144 Hz monitor only show 60 Hz in the refresh-rate tester?
Several common causes. (1) Your browser uses requestAnimationFrame, which on some platforms is throttled to the primary display's rate — if you have a 60 Hz second monitor as primary, even a 144 Hz secondary might be capped. (2) The cable matters: HDMI 1.4 maxes out at 144 Hz only at 1080p; for 1440p or 4K at 144 Hz you need DisplayPort 1.4 or HDMI 2.1. (3) The OS display setting may still be at 60 Hz despite the panel supporting more. (4) Power-saving or battery-saver mode caps the refresh rate. Check Windows Display Settings → Advanced display, or System Settings → Displays on macOS.
Can I use this hub to test my brand-new laptop before the return window closes?
Absolutely — that is one of its most common uses. Within the first day or two, run dead-pixel checker, keyboard tester, mic, webcam, audio, and the touchpad tester. If anything misbehaves, your retailer is far more cooperative inside the return window than after it. Combine with the OEM's own diagnostic (Dell SupportAssist, Lenovo Vantage, HP PC Hardware Diagnostics) for a thorough check.
Why is the audio latency different in different browsers?
Each browser uses a different audio backend on each OS. On Windows, Chrome and Edge use WASAPI shared mode by default, Firefox uses WASAPI shared too but with different buffer settings, and Safari on macOS uses CoreAudio. WASAPI shared mode can add 10–20 ms of buffering on top of the hardware latency, which is why the same headphones might show 18 ms in Chrome and 25 ms in Firefox. For musicians, native ASIO drivers via JUCE or DAW software still beat any browser by a wide margin.
Does this work on mobile phones and tablets?
Most tests work on iOS Safari and Android Chrome, with some caveats. The refresh-rate tester works (and now reports 90 Hz, 120 Hz, even 165 Hz on premium phones); the touch tester is perfect on mobile; mic and camera testers work; but keyboard testing is limited because virtual keyboards on mobile don't fire the same KeyboardEvent codes as physical keys. For full keyboard testing, use a desktop or a tablet with a physical keyboard attached.
Are my test results private?
Yes — every test in this hub runs entirely in your browser. Microphone audio, webcam video, pointer movements and key presses are processed in JavaScript inside your tab and never uploaded to a server. We do not log results, do not require sign-in, and do not run analytics on the test data itself. The browser will ask permission before activating mic or camera; you can revoke that permission any time from your browser's URL-bar lock icon.
Why does the keyboard tester miss some keypresses?
This is almost always the operating system, not the keyboard. On Windows, certain key combinations (Win+L lock, Ctrl+Alt+Del, PrintScreen on some setups, F12 in DevTools, Win+G for Game Bar) are intercepted by the OS or browser and never reach JavaScript. macOS swallows Cmd+Tab, Cmd+Space and similar. To verify your keyboard's hardware is fine, compare against the OS's own input method or use a vendor utility (Logitech G Hub, Razer Synapse, Corsair iCUE) which sees keys at a lower level.
How precise is the screen pixel test?
Pixel-perfect for spotting dead and stuck pixels — every CSS pixel maps directly to a display pixel as long as you are at 100% browser zoom on a non-scaled display. For colour calibration the test is qualitative; you can see banding, gamma steps and gross tinting, but for an actual ΔE measurement against sRGB or DCI-P3 you need a hardware colorimeter (X-Rite i1Display Pro, Datacolor SpyderX, ColorChecker).
Why does the CPU stress test show low temperatures?
Browsers cannot read CPU temperature, fan speed, or per-core voltage. The test reports throughput only — operations per second per worker. To monitor temperatures during the stress test, run a native utility alongside (HWMonitor, Core Temp, iStat Menus, Linux's `sensors` command). If the browser score collapses 60–120 seconds in while temperatures climb past 95 °C, you are seeing thermal throttling; if temperatures stay flat but score still drops, look for power-limit throttling (PL1/PL2 on Intel, PPT on AMD).
Can I trust these results for a warranty dispute?
Generally no. Manufacturers (Dell, HP, Lenovo, Asus, Apple, MSI) require their own OEM diagnostic logs as evidence — Dell SupportAssist's PSA test, Apple Diagnostics, MSI Center, etc. Browser tests are great for confirming a problem to yourself before you call support, and screenshots of failed tests can support your case, but no manufacturer accepts a third-party browser tool as definitive. Always run the OEM tool too and save its log file.
