NFC Tag Test Guide
A reference for the DeskTest.net NFC Tag Test. Covers why NFC reading in the browser is Android-only, how the tool reads NDEF records and decodes their URL or text payloads, how to read the verdict, and how to fix NFC permission and tag-read problems.
What does the NFC Tag Test check?
NFC (Near-Field Communication) tags are the little stickers and cards you tap a phone against - a tap-to-review tag on a counter, a product or menu tag, a tap-to-connect business card. This tool confirms two things, in order, on a supported device:
- NFC reading is available. The tool checks whether the browser exposes the Web NFC API (the
NDEFReaderinterface) and whether you are on Android. If the API is missing, the tool stops here with a clear, friendly message - it never pretends to read a tag. - Tap a tag to read it. Where the API exists, you tap an NFC tag to the back of the phone. The tool reads the tag's NDEF message, breaks it into records, decodes each payload (a URL record becomes the URL it points to; a text record becomes the text), and shows the tag's serial number if the platform provides one. Success looks like "Tag read successfully" with a record breakdown.
There is no plugin, no app to install, and nothing is uploaded. The read happens entirely on your device.
Why Android only?
Web NFC - the only way a web page can read an NFC tag - is implemented in Chromium, which means Chrome and Edge on Android. That is the whole supported surface today:
- Desktop (any OS, any browser): no Web NFC. Even if the computer has an NFC reader plugged in, the browser has no API to reach it - see Testing a USB NFC reader on a PC.
- iPhone and iPad: no Web NFC. Safari and every iOS browser lack the
NDEFReaderinterface. (Apps can use iOS Core NFC, but web pages cannot.) - Firefox on Android: does not support Web NFC.
- Chrome or Edge on Android: supported. This is where the test actually runs.
NDEFReader simply does not exist. Rather than show a red failure - which would wrongly blame your device or your tag - the tool reports "NFC reading needs an Android device" and tells you to open the page on Android. Nothing failed; the capability is just not present.Testing a USB NFC reader on a PC?
Front desks often have a small USB NFC or contactless reader wired to the workstation - for key fobs, membership cards, or tap cards. That is a different device class from a phone's built-in NFC, and the right test depends on how the reader presents itself to the computer:
- Keyboard-wedge readers read a card or fob and "type" its number followed by Enter, exactly like a barcode scanner. The browser sees keystrokes, not NFC, so Web NFC never enters into it. Test a number-typing reader with the Barcode Scanner Test, or the Card Reader Test if it reads a magnetic stripe.
- PC/SC contactless readers - an ACR122U, an HID Omnikey, most hotel key-card encoders - talk to the OS through a vendor smart-card driver. No browser API reaches them; reading their cards needs the vendor's own software. The USB Device Test can confirm the computer detects the reader on the USB bus, but it cannot read a card through one.
- A phone or tablet's built-in NFC is the one case this tool covers, through Web NFC on Android.
So if "NFC" at your desk means a box plugged into a PC, this page is not the right test - on that machine it will simply report that the browser has no NFC. The pointers above go to the tool that fits.
When should I run this?
- You made or bought NFC tags and want to confirm what is on them. Tap a tag and see the exact URL or text it stores, decoded from the raw NDEF message.
- A tap-to-review or tap-to-menu tag "isn't working." If this tool reads the tag cleanly, the tag and your phone's NFC are fine - the issue is elsewhere (a wrong or unreachable URL, a phone with NFC turned off, or a case blocking the antenna).
- Checking a phone's NFC hardware. A successful read proves the phone's NFC reader works end to end in the browser.
- Bench-testing a batch of tags. Tap each one to confirm it is encoded and readable before you deploy them.
Reading the results
Each step shows a status badge: Pending (gray), Running (yellow), Pass (green), Fail (red), or N/A (gray, used when NFC reading is not available in this browser). The verdict panel at the top summarizes the outcome and, on any problem, names the most likely cause and a recommended next step.
There are three broad outcomes:
- Pass (green): "NFC tag read successfully." Your reader works. The tool lists every NDEF record with its decoded value and shows the serial number if the tag provides one.
- Not supported (yellow): "NFC reading needs an Android device." This browser has no Web NFC API. This is not a failure - the test just cannot run here. Open the page on Android Chrome or Edge.
- Fail (red). Reserved for real problems on a capable device: NFC permission was blocked, NFC is turned off or absent, a tag was detected but did not read cleanly, or you cancelled. Each fail expands with a numbered checklist.
Copy Diagnostic Report copies a plain-text report - browser, platform, whether the API was present, the serial number, and each record's type and decoded value - for pasting into a ticket.
Understanding NDEF records
An NFC tag stores an NDEF message, which is a list of records. Each record has a type, and the tool decodes the common ones:
| Record type | What it holds | How the tool shows it |
|---|---|---|
url / absolute-url | A web address (the most common tap-to-open tag) | The decoded URL as plain text |
text | Human-readable text, with a language code | The decoded text, plus its language and encoding |
mime | Typed data (for example a vCard business card) | Decoded as text when the media type is text-like; otherwise a byte count |
smart-poster | A URL bundled with a title and an action | Labeled as a structured record |
empty | A record with no payload | Marked as empty |
external / unknown | App-specific or unrecognized data | Decoded text if printable, else a byte count |
Common problems and fixes
"NFC reading needs an Android device"
The browser has no Web NFC API. See Why Android only. Open desktest.net/nfc-test/ in Chrome or Edge on an Android phone or tablet. On desktop or iOS there is no browser-based way to read a tag; this is a platform limit, not a fault in your setup.
"NFC permission was blocked"
You are on a capable device, but the browser was not allowed to use NFC.
- Run the test again and choose Allow when the NFC prompt appears.
- If you blocked it before, tap the lock or tune icon in Chrome's address bar, open Permissions, reset NFC for this site, and retry.
- Confirm NFC is switched on in Android Settings (usually Connected devices -> Connection preferences -> NFC).
"NFC is turned off or unavailable"
The browser could not start a scan at all.
- Open Android Settings, search for NFC, and turn it on.
- Confirm the device actually has NFC hardware. Most modern phones do; some budget tablets do not.
- With NFC on, run the test again and hold a tag to the back of the phone.
"Tag could not be read"
NFC is working - the phone sensed a tag - but the message did not read cleanly.
- Hold the tag flat and still against the back of the phone for a full second.
- Move it around: the NFC antenna is usually near the top-center or the camera, not the middle of the back.
- Remove any thick case or metal object between the tag and the phone - metal blocks NFC.
- The tag may be blank, damaged, or an unsupported chip type. Compare against a known-good tag.
For IT admins
Web NFC needs a secure context (HTTPS) and a user gesture - the read starts from a button tap, never automatically. It also runs only in the top-level page, not inside a cross-origin iframe. If you are wrapping this or a similar tool in a kiosk or MDM-managed browser, make sure NFC is enabled at the OS level and that the managed Chrome/Edge policy does not disable the Web NFC permission.
For tap-to-review, tap-to-menu, and product tags, the common failure in the field is not the tag - it is a phone with NFC switched off, a heavy case, or (on iPhone) a user expecting the same behavior as Android. iPhones do read NFC tags through the system (background tag reading), but not through a web page's API, so a browser-based encoder or reader like this is Android-only. Encode tags with a simple, short HTTPS URL, keep the antenna area clear, and test a sample from each batch here before deployment.
Privacy for deployments. This tool reads and displays on-device only. No tag content, serial number, or read event is sent anywhere. That makes it safe to use on a shared or customer-facing device without exposing what was scanned.
Behind the scenes
When you tap Run on a supported device, the page creates an NDEFReader and calls scan() inside the click handler, satisfying the user-gesture requirement. The scan is wired to an AbortController; its signal both registers the reading and readingerror listeners and provides a single call to tear everything down. On a reading event the handler walks event.message.records and, for each record, decodes the data DataView with TextDecoder using the record's own encoding where relevant. The serial number, when present, comes from event.serialNumber.
Every value read from a tag is rendered with textContent, never innerHTML, and the page never navigates to a decoded URL. A tag is untrusted physical-world input, so it is displayed inertly by design.
The scan is aborted the moment a tag is read, when you cancel, when you reset, and on page unload - the reader never lingers in the background. If scan() is rejected (permission denied, or NFC off), the tool reports the specific reason rather than a generic error, and where NDEFReader does not exist at all it degrades to the honest "open on Android" state instead of failing.
Nothing leaves the browser tab. No tag content, no serial number, and no read event is logged to a server, and there is no telemetry. Open DevTools, Network tab, and confirm: no outbound requests while the test runs.
Related
- NFC Tag Test - the diagnostic itself
- Barcode Scanner Test Guide - the tap-to-scan cousin for USB barcode and QR scanners, including keyboard-wedge NFC/fob readers
- Card Reader Test Guide - magnetic-stripe and keyboard-wedge reader checks
- USB Device Test Guide - confirm a PC detects a plugged-in USB reader
- DeskTest.net home
- About DeskTest.net