Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create error message when using proprietary tags #160

Closed
kenchris opened this issue Oct 10, 2018 · 9 comments
Closed

Create error message when using proprietary tags #160

kenchris opened this issue Oct 10, 2018 · 9 comments
Labels
Origin Trial Issues that would be good to solve before OT

Comments

@kenchris
Copy link
Contributor

kenchris commented Oct 10, 2018

The most common feedback we have gotten is the lack of support for the super popular Mifare Classic tags. These are NDEF compatible but only supported by NXP readers.

We should support reading/writing to these on compatible hardware as an explicit opt-in

@kenchris kenchris added the Origin Trial Issues that would be good to solve before OT label Nov 30, 2018
kenchris added a commit to kenchris/web-nfc that referenced this issue Feb 15, 2019
The most common feedback we have gotten is the lack of support for
the super popular Mifare Classic tags. These are NDEF compatible but
not part of the NFC spec and only supported by NXP reader chips.

This adds an explicit opt-in to reading and writing to these tags

Fixes w3c#160
kenchris added a commit to kenchris/web-nfc that referenced this issue Feb 15, 2019
The most common feedback we have gotten is the lack of support for
the super popular Mifare Classic tags. These are NDEF compatible but
not part of the NFC spec and only supported by NXP reader chips.

This adds an explicit opt-in to reading and writing to these tags

Fixes w3c#160
kenchris added a commit to kenchris/web-nfc that referenced this issue Feb 15, 2019
The most common feedback we have gotten is the lack of support for
the super popular Mifare Classic tags. These are NDEF compatible but
not part of the NFC spec and only supported by NXP reader chips.

This adds an explicit opt-in to reading and writing to these tags

Fixes w3c#160
kenchris added a commit that referenced this issue Feb 15, 2019
The most common feedback we have gotten is the lack of support for
the super popular Mifare Classic tags. These are NDEF compatible but
not part of the NFC spec and only supported by NXP reader chips.

This adds an explicit opt-in to reading and writing to these tags

Fixes #160
@reillyeon
Copy link
Member

@kenchris, can you provide background on why this needs to be opt-in?

@zolkis
Copy link
Contributor

zolkis commented May 29, 2019

Also related to #226. I wonder could we make NDEFCompatibility simpler (or even more, get rid of it).
I would not care about the reader type once the content is NDEF. Could we leave compatibility issues to implementations, or do the applications/web pages need to have the option to make a choice there? (even then, a sensible default would be to "not care, just read/write the content if you can").

@kenchris
Copy link
Contributor Author

@reillyeon the background is that there are NFC-like tags that offer NDEF etc but don't work with all readers as they are not following the standard. Mifare Classic is a common example of this and it can only be written to and read by phones that have an NFC chip made by NXP. If it for instance has a NFC chip made by say Sony (like my old phone) they these tags cannot be read at all.

I think that comes as a surprise to many people as these tags are often sold as just being NFC tags, though they are not, so this sets the expectations straight.

The tags are basically proprietary and the web is about standards so you could ague that we should ignore them. But they are quite popular and from talking to potential users of Web NFC, there are valid use-cases. For instance, I talked to a company where the keycards are Mifare Classic and they want to use Web NFC to easily tap a keycard and a NFC sticker on a room to reserve meeting rooms.

@zolkis
Copy link
Contributor

zolkis commented May 29, 2019

@kenchris so the rationale for NDEFCompatibility is that the page can tell it only wants standard tags or it wants to implementation to consider also non-standard tags if the implementation/underlying platform can deal with it.

However, why wouldn't a page always opt for the widest compatibility available from the platform? Do we have a use case when a page explicitly does not want to read/write non-standard tags? Otherwise I suggest we take the "widest possible" compatibility and for the time being remove NDEFCompatibility and explain the handling of various compatibility scenarios in prose.

@kenchris
Copy link
Contributor Author

By default you are not able to read / write to all tags and we should throw an error when they are attempting so that the devs become quite aware that it is non standard. We already got such feedback from the existing impl in Chrome, so it definitely works.

This makes the opt in very explicitly.

I also know of people who have bought Mifare Classic tags and believed they would work everywhere as it worked for them, only to later find out that is now the case

@zolkis
Copy link
Contributor

zolkis commented May 29, 2019

I am fine with keeping it explicit, especially if it has been considered and feedbacked earlier - but I wanted to understand.
OK, so when tag comms does not work, we throw an error, so the devs would know it's non-standard.
But this could be done even without NDEFCompatibility.
What I am trying to understand is whether are you trying to minimize the chance of error reporting by making the devs aware of the compatibility issues and by pushing them to make an explicit choice there? (whereas my thinking was devs would not really care until an error is received, but even then there is not much to do about it than just ack the error, since the platform can't handle it anyway).

@kenchris
Copy link
Contributor Author

Yes, we should throw such an error with good explaination and make it work (not throw error) if NDEFCompatibitity is set to any or vendor

@reillyeon
Copy link
Member

The developer education re: potentially incompatible cards argument sounds good to me. Can we add spec text clarifying that as the purpose?

@leonhsl
Copy link
Contributor

leonhsl commented Jun 4, 2019

Is there any special concern for us to have the vendor compatibility option?
From reading the spec, the only reason seems to be that a reader with a vendor option is not allowed to read nfc-forum messages: step 1.5 of https://w3c.github.io/web-nfc/#dispatching-nfc-content
Is this use case a required/valid one? If not, nfc-forum and compatible seems enough for us and easy to understand for devs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Origin Trial Issues that would be good to solve before OT
Projects
None yet
Development

No branches or pull requests

4 participants