What to do about small percentage of users who insist on using things like NoScript?
Asked Answered
S

2

5

I want to make a website completely socket and ajax based for user interaction. Meaning that users who have javascript turned off won't even be able to send updates to the website in any way or even register. They'll only be able to read data.

So what's the general opinion on this? Should I take my time to make the website flexible enough to be able to deal with a small group of people who have scripts turned off?

This is also a framework that I want to be able to reuse in more websites.

Sweepback answered 18/3, 2011 at 6:7 Comment(0)
G
9

Every decision you make will affect some portion of users. Ideal screen size, cookies on-or-off, JavaScript and so on all have an impact.

But this is not new. If you write an app for iOS it can't run on Android. If you write a game for xBox it doesn't run on the PlayStation.

My personal opinion - if people have literally turned off JavaScript in their browser (and stats suggest this is a pretty low percentage) then they're gonna get an inferior web experience. They won't be able to properly use your site. IMO that's ok. You've made a choice and so have they. You want your users to get a good experience, and so you focus on that.

Let's make this analogous to say Windows and Mac software. Windows has say 95% of the desktop market, and Mac 5%. (I'm making up the numbers - it's not important what the exact stats are). So naturally you write your program first for PC. After that you could spend your time re-writing for Mac, or improving for PC. Most people opt to improve for PC.

I'm in the camp now where I'm not too concerned about minorities. I don't test in IE6 anymore. I require JavaScript to be on. And I need support for at least a session cookie. If you wanna stay on IE6 - go for it, but that's your decision so don't come crying to me if you can't use the site. I don't support 10 year old phones, so why support a 10 year old browser? I understand the logic for some folks turning off JavaScript - but I'm not gonna diminish the experience for the other 98% of people just to accommodate you. And I don't have time to rewrite everything twice.

Gey answered 18/3, 2011 at 6:20 Comment(1)
I have the same opinion. Just wanted to know what others' was on this. IE6 is a bit different from turning off Javascript. IE comes preinstalledon a lot of computers, or is the default browser on school/work computers. So a lot of the users don't know any better, don't care, or can't install another browser. But Javascript is on by default in every browser. Only a user that has spent enough time on the Internet will even try to disable it. And it's completely their choice.Sweepback
M
1

Since we don't know anything about your website, your business model, your customers, or how small "small" is, it would be impossible for us to advise you on whether it's worth it or not. It would certainly lead to a lot of work, and probably some inconsistencies in the user experience.

One thing you can do to reuse as much as possible between the two would be to use a strict MVC model. The model layer can fetch each piece of data asked for, while the facade layer in front of it can service both kinds of requests.

Let's say your website has a member profile admin page. The model has a Member object with methods for setting/getting identifiers, address, phone number, email address, etc.

Scenario A, JS is enabled:
1) A link from the "profile admin" menu option calls getProfile() on the back end. That builds the HTML/JavaScript to send back by calling getIdentifiers(), getAddress(), getPhone(), etc. and sends that back to the client.
2) The user changes the phone number on their profile page. Since JS is enabled, an AJAX call will be made to setPhone(), and when the results come back, only that portion of the page is updated.

Scenario B, JS is disabled: 1) A link from the "profile admin" menu option calls getProfile() on the back end. The session data will have a boolean noting that JS is disabled, so the page that's rendered has forms and submit buttons. 2) User submits data to setProfile(), containing all the fields, changed or not. What's send back is a re-rendering of the page with the new info via getProfile().

Also see this post about presenting alternate content when JS is turned off.

So it is possible. However, as Bruce said, unless you REALLY need that population, they get what they deserve. I personally would not go through that level of effort, any more than I would try to account for users who might try to access the site through 14.4K modems. All of these tools to turn off JS allow you to specify exception websites.

Million answered 18/3, 2011 at 6:28 Comment(1)
Thanks. Good idea for developing a model layer to keep it just more flexible. For now I won't be doing anything for users with JS turned off. But I'll keep it flexible enough if I change my mind later on. The way I have it set up now with controllers, views, and now models, I'd only need to add some methods to the controller, make forms submit to these new methods, and then go through forms with JS and make them submit through ajax/websocket.Sweepback

© 2022 - 2024 — McMap. All rights reserved.