[HN Gopher] Just normal web things
       ___________________________________________________________________
        
       Just normal web things
        
       Author : vitplister
       Score  : 327 points
       Date   : 2023-08-05 16:07 UTC (6 hours ago)
        
 (HTM) web link (heather-buchel.com)
 (TXT) w3m dump (heather-buchel.com)
        
       | veave wrote:
       | >Stop hijacking my typical browser shortcuts for use in your own
       | app I've seen this happen with ctrl + f for opening a custom in-
       | app search bar. I don't want that. It doesn't always search the
       | page as usual.
       | 
       | You can bypass this by selecting the url bar before using ctrl-f.
        
         | rjh29 wrote:
         | Ctrl-f is often overriden for a reason, though. On modern
         | shitty React sites content outside the viewport may not be
         | loaded into the DOM, so the browser find won't even work. It is
         | quite frustrating the scroll past some text, ctrl-f for it and
         | get "no results".
        
           | shadowgovt wrote:
           | Correct. The most common perpetrator of "stealing" ctrl-f I
           | use is the Google drive suite (Sheets, Docs, &c) and it's
           | basically necessary. That operation is executed server-side.
           | The client doesn't _have_ the data to do the search.
           | 
           | But that should be an exception, not the rule.
        
             | eddd-ddde wrote:
             | Google at least gets it right, I almost never used a
             | generic site's search function cause they never help me
             | find what I want
        
       | gxs wrote:
       | I hope everyone reads this and listens.
       | 
       | I'll always long for the days of simple websites but I know they
       | are gone and that's fine.
       | 
       | The least we could do, however, is preserve some modicum of
       | standards and usability.
       | 
       | I'll throw in ability to open images/media as standalone files to
       | this list.
        
       | Given_47 wrote:
       | > Stop hijacking my typical browser shortcuts for use in your own
       | app I've seen this happen with ctrl + f for opening a custom in-
       | app search bar.
       | 
       | Ah the Discourse classic. But did you know if you hit ctrl+F
       | twice sequentially you can override that annoying behavior!
        
       | ajimix wrote:
       | Why bank websites remove the ability to paste? You have already
       | copied the text when you realize you cannot paste. So what is the
       | point? Writing things by hand are prone to errors and if your
       | clipboard is poisoned you have already copied the stuff by the
       | time you realize you cannot paste...
        
         | capableweb wrote:
         | Usually it starts with a company having issues with robot
         | traffic. So they try a bunch of things to hinder the robot(s).
         | They do something, the robot stops working, but after a while
         | it comes back, it's a cat and mouse game essentially.
         | 
         | One day, they (developers pushed by middle managers) disable
         | copy-paste on the login page, and the robot temporary stops
         | working, until a couple of days later, when the robot found a
         | way around it.
         | 
         | On to the next thing to do to stop the robot, but that previous
         | "fix" is still there, with the thinking that "maybe that stops
         | some of the robots", but it probably doesn't.
         | 
         | But there it sits, some ~10-ish lines of JS that will hang
         | around until rewrite v6 when they'll begin from the beginning,
         | and some months/years later come around to disabling it once
         | again.
         | 
         | No, I'm absolutely not speaking from experience.
        
         | extraduder_ire wrote:
         | IME, middle-clicking on a linuxy computer still works as
         | expected most places. I use that far more often than real
         | copy/paste.
        
         | epivosism wrote:
         | I always imagine there is an "intro to forms programming" which
         | includes code to disable copy and paste, and its concepts now
         | have thousands of descendants across the web, to the point that
         | people start imagining it's a security measure and proactively
         | copy it. I agree w/you and don't see the point in stopping
         | users from pasting in the first place.
        
           | mgkimsal wrote:
           | I don't think it specifically violates any accessibility
           | regulations, but preventing pasting has always come across to
           | me as an accessibility violation.
        
         | samwillis wrote:
         | I hate this so much, was registering for a new ISP the other
         | day, they blocked paste in the password inputs and broke my
         | password manger. Such an incredible bad decision from a
         | security perspective.
        
         | Devasta wrote:
         | Not saying this is the case, but there was malware that would
         | check to see if you had copied what looked to be a bitcoin
         | account and replaced it with its own.
         | 
         | https://techcrunch.com/2018/07/03/new-malware-highjacks-your...
         | 
         | Something like that maybe?
        
           | klabb3 wrote:
           | Yeah I also hate this but they have a point. Desktop
           | clipboard is a shitshow. Any app can read it willy nilly,
           | certainly if focused but I wouldn't be surprised if it works
           | in the background on some platforms.
           | 
           | It is one of the prime candidates for a global redesign from
           | scratch, including even physical keys (since copy-paste is so
           | common, certainly more than say caps lock). All the APIs are
           | riddled with decades of tech debt and are entirely platform-
           | specific.
        
         | bryanrasmussen wrote:
         | maybe they think criminals are too stupid to put a varying
         | timer to make keypress times seem natural.
        
         | bobbylarrybobby wrote:
         | This is why I have an automation on my computer to type out the
         | clipboard character by character.
        
         | bakugo wrote:
         | Not only does my bank's website not allow me to paste my
         | "password", it doesn't allow me to type it at all. It's insane.
         | Said "password" is just a 6 digit number (we're not allowed to
         | set our own passwords, because 6 digits is definitely way more
         | secure than the 16 character random strings my password manager
         | generates) and it forces me to enter it using buttons on the
         | page itself with randomized positions. No idea how any of this
         | is supposed to help with security, if my device is already
         | compromised to the point that all my keypresses and clicks are
         | being logged, the attacker can probably also just read the
         | password from the browser's memory...
        
           | duderific wrote:
           | That's maniacal.
        
           | earthling8118 wrote:
           | It's time to find a real bank.
        
       | brigadier132 wrote:
       | > nevermind the basic accessibility requirements that are often
       | missing like alt text on images
       | 
       | It's easier than ever to make websites accessible and a lot of
       | these new tools enable this. Like throwing linter errors when alt
       | text is not set on images.
       | 
       | A lot of the things described in this article are issues with a
       | lack of skill or maliciousness from the developer or whoever
       | hired them. That copy paste thing? I almost always notice it on
       | the websites of legacy book publishers. I think you can pretty
       | easily guess their motivations.
       | 
       | I dislike react for other reasons but the majority of developers
       | having shallow knowledge of how the web works is not one of them.
       | That's just nature, the most common thing always ends up going to
       | the lowest common denominator. Chocolate: hersheys or nestle,
       | coffee: nespresso pods, food: mcdonalds, programming:
       | javascript...
        
         | nosefurhairdo wrote:
         | Can confirm the pain of working on a react application where
         | 90% of the code was written by folks with shallow web
         | knowledge. Not the fault of React.
        
         | blorenz wrote:
         | I'd wager with the rise of LLMs then we'll get an immense rise
         | of accessibility as the LLM can interpret a page in context of
         | what the user requires.
        
       | flagsarecolored wrote:
       | I agree with the sentiment, but why is this still attributed to
       | JavaScript. This applies to essentially everything exposed to UX,
       | well beyond JS and web. We didn't JavaScript it away, we bad-
       | developered ourselves through a narrowing hallway until a point
       | where we ended up with a black sheep. JavaScript didn't enable
       | this, there's as many issues in this space in environments where
       | JavaScript is not even a player, it may have been a carrier but
       | not the root cause.
        
         | austin-cheney wrote:
         | I don't blame the developers for this at all. I consider myself
         | strong with accessibility and yet at the last job I was
         | intimidated to bring it up. There accessibility was an anti-
         | pattern. At many places they are just struggling to put text to
         | screen. At these places you need a billion lines of code in
         | multiple frameworks to display "hello world". How can you blame
         | the JavaScript developer when nobody knows what they are doing
         | and everybody points fingers at each other?
         | 
         | This doesn't just apply to accessibility. It also applies to
         | security, performance, and a variety of other things that never
         | happen unless a law suit is coming or a major client stops
         | paying.
        
       | yuumei wrote:
       | "Stop hijacking my typical browser shortcuts for use in your own
       | app" GitHub does this now, it's infuriating
        
       | rado wrote:
       | The crazy thing about the rampant inaccessibility is that it's
       | clearly illegal and discriminatory and nobody cares. Any success
       | stories about convincing product managers to stop it?
        
       | Kiro wrote:
       | > Let me copy text so I can paste it.
       | 
       | I'm guilty of doing this because in my game people kept
       | accidentally double clicking and selecting all the text in the
       | UI. What are the best practices around this?
        
         | noduerme wrote:
         | There's nothing wrong with that. A game UI is where you
         | _should_ block text selection. Web-based games that let you
         | accidentally select UI text look unprofessional. I think the
         | author is talking about informational or business apps.
        
           | yonatan8070 wrote:
           | I was reading some article a while back, and as I read I like
           | to highlight what I'm reading with my mouse, but that
           | particular website decided that when I try to highlight text,
           | the appropriate reaction from the site would be a tooltip
           | saying that highlighting is not allowed... So I opened the
           | devtools and copied the whole thing out of spite
        
         | ricardo81 wrote:
         | I'd guess it'd be to limit your custom behaviour to the element
         | it applies to, rather than potentially the whole doc, or
         | multiple pages etc.
        
         | nicbou wrote:
         | CSS lets you set that behaviour per element
        
         | shadowgovt wrote:
         | In an ideal world, we really should have had another button or
         | key combo for "I want to select the text" that isn't overloaded
         | on "I want to select in general."
         | 
         | The old way was fine when word processors and other apps were
         | completely separate beasts, but the web has blurred all of that
         | and we are unfortunately albatross'd to decisions made in the
         | past.
         | 
         | I want a fifth mouse button where 5-drag always means "select
         | text" independent of all other UI content and as a result all
         | text is selectable because text selection and other
         | manipulations are totally different operations (at the event
         | layer; "mouse down" and "mouse textselect" would be two
         | different events).
         | 
         | Wishful thinking; we're stuck with the UI we have.
        
         | creata wrote:
         | Imo that's fine. In fact, it's annoying when people (e.g., the
         | "5 seconds" rewind in the YouTube player) don't do this.
         | 
         | Even if it's often abused, user-select exists for a reason.
         | 
         | [But if there _is_ some text in your game that you think users
         | might ever want to copy, please make it selectable!]
        
       | p1mrx wrote:
       | I'm aware of 5 operations that a standard link should support:
       | 
       | - Left-click (obvious)
       | 
       | - Right-click (context menu)
       | 
       | - Middle-click (open in new tab)
       | 
       | - Ctrl-click (open in new tab)
       | 
       | - Shift-click (open in new window)
       | 
       | Most sites support at least one of right/middle/ctrl-click,
       | though sometimes you have to Duplicate the tab and then left-
       | click. If none work, and duplicating the tab loses context, it's
       | probably time to abandon hope and find another website.
        
         | eyelidlessness wrote:
         | Note: if at all possible, _don't implement these yourself_!
         | You'll very probably do it wrong for at least some users. For
         | example, ctrl-click for new tab is platform specific: on macOS
         | it should be cmd-click, and ctrl-click should open a context
         | menu. Most if not all are or can be user-configurable, which
         | might not be detected by JS. But the default behaviors _will do
         | the right thing unless you override them_.
        
           | p1mrx wrote:
           | I'm the parent commenter and I approve this message.
        
       | samwillis wrote:
       | I think of this as the "appification of _websites_ ", we need to
       | stop doing it. We need to move back to SSR and sprinkles of JS on
       | _websites_.
       | 
       | On the other hand _web apps_ absolutely can play a little more
       | with the UX if it provides value to the user. But if it 's in the
       | browser, some of this really do still apply. I'm all in on web
       | apps, its a universally accessible platform for development
       | outside the walled gardens of app stores.
       | 
       | What we need to stop doing is treating _every single website as
       | an app_!
       | 
       | If you want your page to appear in search results on a search
       | engine, it's not a _web app_ it 's a _website_.
        
         | holoduke wrote:
         | On the other hand a good webapp can also be a website. Just
         | matter of spending enough time on it.
        
         | satvikpendem wrote:
         | > _We need to move back to SSR and sprinkles of JS on
         | websites._
         | 
         | Fortunately with stuff like React Server Components, looks like
         | we are moving back to sprinkling JS for websites, which I'm a
         | big fan of.
        
         | bo1024 wrote:
         | You might like this commentary: https://notan.app/
        
         | bunga-bunga wrote:
         | I really wish we could have browser "Accept: text/markdown" for
         | raw documents, but that boat sailed the moment we got CSS.
        
           | aerzen wrote:
           | Why though? We could have the browser apply the styles. And
           | even allow user preferences to affect the presentation! kinda
           | like firefox "article mode".
           | 
           | But that text/markdown would have to be restricted not to
           | include any html tags, which are allowed in the "common" md
           | spec.
        
       | bob1029 wrote:
       | > Let me zoom in on my browser without the website getting all
       | out of whack. I just want to be able to read.
       | 
       | This is my new OCD obsession when doing layout. I will keep my
       | browser at 250% zoom for the first 3-4 hours of development.
       | Periodically, I will spot test things like tables up to 500%.
       | 
       | I had no respect for the humble non-breaking space or automatic
       | table layouts until I started doing this.
        
       | agumonkey wrote:
       | It's hard to focus on this, even though I agree 100% with the
       | whole list, when you're developing on react.
        
         | shadowgovt wrote:
         | I'd be interested in more information on the difficulties
         | you've encountered. I do most of my web dev in React and I
         | don't remember encountering difficulties with these items.
        
       | muhehe wrote:
       | One of many things I hate on crappy modern web is messing with
       | history (API). You click a interesting-looking link somewhere
       | (like HN), go to page. You scroll down, either reading or just
       | skimming, and every funcking header (or even something less
       | important) add entry to you history. To get back to original site
       | you have to click back like a million times.
       | 
       | Fuck everyone who does that.
        
       | firefoxd wrote:
       | One thing that happens when you learn to build web things using
       | React before learning html, is that you don't care about links.
       | 
       | When I joined my team, all links were buttons, random elements,
       | or <a> with onClick. Nobody complained, but that meant ctrl click
       | was useless, right click did not give you the options you wanted.
       | 
       | This is the only thing I'm a dictator about. There is zero room
       | for negotiation when it comes to links.
        
         | noman-land wrote:
         | I'm the same way. If someone is committing code that violates
         | web standards it is not going in unless there's a thorough
         | discussion and an excellent reason for doing so. Lean on the
         | web.
        
           | sonofhans wrote:
           | Oh, you and the OP are both making me happy. Plenty of people
           | seem to use nothing but DIV, SPAN, and maybe A or BUTTON. You
           | don't have to use all the semantic richness of HTML, but
           | damn, at least treat links right. The <a onclick> pattern is
           | awful.
        
         | trealira wrote:
         | Since we're on the topic of how people should learn to build
         | web things: what do you think are the most important things to
         | learn first to make web stuff? The "right" way? Just raw HTML,
         | CSS, and some JavaScript (Typescript?)? It seems common among
         | programmers to criticize the overuse of web frameworks. Are
         | there a lot of people who learn only web frameworks?
        
           | satvikpendem wrote:
           | > _Are there a lot of people who learn only web frameworks?_
           | 
           | Yes, because many people learn web development through
           | bootcamps or other such courses (modern web dev is not
           | usually taught in college, in my experience) which rush you
           | to "job readiness" thus incentivizing using React over
           | vanilla JS since most web dev jobs use React nowadays.
        
             | blq10 wrote:
             | What would a college that aimed to teach Web Development as
             | a specialty actually look like?
             | 
             | People look down on bootcampers, but it always feels to me
             | that 99% of what is taught in university programs is
             | similarly only useful in specialized situations. The actual
             | good thing is having had to sit down and write a _lot_ of
             | code before anyone lets you touch anything.
             | 
             | What does such a program look like for Web?
        
           | josephg wrote:
           | > what do you think are the most important things to learn
           | first to make web stuff? The "right" way? Just raw HTML, CSS,
           | and some JavaScript (Typescript?)?
           | 
           | Yes. I think all web programmers need to know HTML and CSS.
           | CSS is still just as relevant no matter how you build
           | websites. People should also spend time learning HTML. Like,
           | learn how to make content using raw HTML. Read the HTML of
           | some of your favorite sites. This will improve everything you
           | do with react and friends.
           | 
           | > Are there a lot of people who learn only web frameworks?
           | 
           | Yes.
           | 
           | Web programming probably has more programming beginners than
           | any other area of software development. Its easy to learn -
           | there are no C pointers in sight and no manual memory
           | management. Websites work everywhere. And everyone needs a
           | website - so there's lots of demand for web programmers. The
           | debugging tools are also great (and you already have them if
           | you have chrome installed). And frontend engineering is
           | visual and obvious - so when you mess it up, you can usually
           | tell.
           | 
           | So, yes. There's lots of people who learn _just enough_ to
           | scrape by and start making websites. Its great and terrible.
           | I 'm glad web programming is such an on-ramp for beginners.
           | But npm is a disaster, and lots of websites are insecure,
           | slow, amateurish messes.
        
           | pjmlp wrote:
           | The coolest framework of them all, vanilaJS.
        
           | firefoxd wrote:
           | I think it's still a good idea to learn by writing HTML
           | pages, then adding a style and script tag in the head. The
           | scripts and styles become enhancements to the page.
           | 
           | If you go to a code bootcamp, you are learning react. A lot
           | of new developers come from these places. Not a bad thing,
           | but they could spend more time on fundamentals
        
         | sergiotapia wrote:
         | This is one of the first things I changed at a new job. I just
         | opened a PR and made the change without asking anyone. It
         | infriuriates me when apps can't Ctrl+click.
        
         | notantigoogle wrote:
         | You should go work for pornhub since their links don't work
         | like links
        
           | moron4hire wrote:
           | The whole _site_ now doesn 't work here in Virginia.
        
         | MostlyStable wrote:
         | This is probably 50% of the reason I use nitter instead of
         | twitter. Aside from not having to have an account, it lets me
         | right click to open tweet threads in a new tab. Which, given
         | the nature of twitter conversations, seems like pretty key
         | behavior! I want to be able to view conversational threads, but
         | I also want to keep my place in the original page so that I can
         | keep opening new threads! It's really not that hard and the
         | actual twitter UI makes it very difficult (although you can get
         | around it with some browser tweaks, but it's still more
         | annoying than a simple right click)
        
         | SilasX wrote:
         | Ugh. Yes. Bane of my web existence: a site will have a list
         | view and a detail view. Can't right click (or use extensions)
         | to open one item in its detail view.
         | 
         | Even then, it would _almost_ be forgivable if going back to
         | list view (via their button or the browser button) were instant
         | and seamless, but...
         | 
         |  _It never is!_ Going back means waiting for all the content to
         | reload again and losing my position.
         | 
         | Why do you designers keep allowing this?
         | 
         | Edit: and for the final kick in the balls, some websites force
         | all tabs to be the same in some respect! Like, Facebook makes
         | it (or at least did one time) so that you have to have the same
         | chats popped up in every tab. If you close one in one tab, it
         | closes in all other tabs. _Why?!_ There's a _reason_ I have
         | multiple tabs open!
        
           | scatters wrote:
           | Sometimes you can duplicate the tab then open the detail view
           | in the duplicate. I agree, it's ridiculous.
        
         | iamnotjay wrote:
         | I never knew <a onClick > was a thing :D nice thread
        
         | 1vuio0pswjnm7 wrote:
         | Is it possible the absence of "links" is unintentional.
         | 
         | As a web user, this sort of "design" has made me focus as a
         | practical matter more on HTTP (requests) instead of HTML
         | (links). It's easy for me to make the links myself once I know
         | where the requests need to go.
         | 
         | It's easy to take JSON and make own HTML. No Javascript needed.
        
         | cowsandmilk wrote:
         | I've run into this, but it is coming from the UX designer for
         | the product. There is an organization component library, with a
         | corresponding figma library. They insist on using the button
         | component instead of the link component.
        
           | chefandy wrote:
           | Specifying button-looking elements for regular navigation
           | actions is definitely wrong, and nearly all UX and UI
           | designers will understand that.
           | 
           | If it triggers an action with consequences, or even navigates
           | users to a single-purpose page where they can select options
           | or confirm the action-- e.g. 'cancel subscription now' or
           | similar-- then it probably should look like a button.
        
           | tough wrote:
           | <Button as={Link} />
        
           | nosefurhairdo wrote:
           | Most react component libraries correctly return <a> tags for
           | <Button /> components with an href property, while still
           | styling them as buttons. This preserves the expected link
           | behaviors while satisfying the design obsession with buttons
           | over traditional links.
        
         | bunga-bunga wrote:
         | Same boat. My blood pressure increased just reading your
         | comment. The web is run by a bunch of amateurs who don't know
         | the single core concept of the web: links.
        
         | varrock wrote:
         | I'd argue the link is the most influential and historic element
         | of the web. Its behavior should rightfully be preserved.
        
           | GloomyBoots wrote:
           | The link and the URL are what made hypertext hyper. They
           | turned words in a document into portals to other documents.
           | 
           | But that web isn't the one we're dealing with anymore. We've
           | moved from documents to applications. Like tabindex, I'm sure
           | browsers or frameworks will gradually find ways to make any
           | element behave link-like in every way. Which isn't really a
           | bad thing, it's just development of the core idea of the web.
        
             | KRAKRISMOTT wrote:
             | It also made things slow. Modern SPA links have pre loading
             | optimizations baked in. It's quite important especially if
             | your users are on mobile.
        
         | tough wrote:
         | But not all buttons are links surely?
        
           | traverseda wrote:
           | They should for accessibility reasons. If they're not
           | assistive tools might not know they're even click-able.
           | 
           | Maybe if you're doing like a painting app or something you
           | don't need to.
        
             | Raicuparta wrote:
             | Button elements and other clickable elements are all
             | detected by accessibility tools as such. If links were the
             | only thing they could click, the modern web would be almost
             | completely unusable, which isn't the case.
        
           | nosefurhairdo wrote:
           | Of course not, but if your button pushes/replaces history
           | then it should be an <a> tag with an href property.
        
         | [deleted]
        
         | dpacmittal wrote:
         | The new reddit web version has all the links as buttons. You
         | cannot open these links in a new tab. It drives me crazy and
         | really strange that such a huge internet giant gas such glaring
         | accessibility issues.
        
         | maximinus_thrax wrote:
         | > This is the only thing I'm a dictator about. There is zero
         | room for negotiation when it comes to links.
         | 
         | This is a hill I'm always willing to die on. Few things bother
         | me more. Maybe fucking with my browser history...
        
           | Buttons840 wrote:
           | Finish the story. Did you die on this hill?
           | 
           | Whenever I push for things that are technically correct I'm
           | ignored and/or not treated well it seems.
        
             | BlargMcLarg wrote:
             | Wait until you get asked, by CTOs and business people, to
             | disable F5/refreshing because it breaks the process flow
             | but building a resilient process flow into an old app takes
             | 10x-100x as long. Only for them to realize if you restart
             | the system, disconnect the network, have a timeout, etc.
             | the problem still exists. They even contemplated physically
             | removing F5 before realizing "wait people can just click
             | refresh or remap F5, that won't work".
             | 
             | Same people will also claim "we don't need a frontend dev
             | or a UX designer".
        
             | Swizec wrote:
             | I always attempt to die on the links should be links hill.
             | So far the only times I didn't get my way was when the
             | thing was in fact semantically a button, it just happened
             | to use navigation to achieve its aim. Usually in these
             | cases the markup is too complex to shove into a link
             | anyway.
             | 
             | Happy to report that our production site has more links
             | that look like buttons than it does buttons that act like
             | links. It's almost a meme on my team that Swiz will get you
             | if you use onClick for navigation.
             | 
             | The other hill I enjoy defending is that we should use more
             | browser built-in components instead of trying to design our
             | own.
        
       | butterNaN wrote:
       | Another reason why we shouldn't lose control of our own browsers.
       | Today I can set my own fonts, block elements, basically re-style
       | everything once it arrives at my browser, tailored to my
       | accessibility preferences.
        
       | archerx wrote:
       | I agree with everything in this post and the thing that gets me
       | the most is broken back buttons on ecommerce sits.
        
       | simonbarker87 wrote:
       | Here here!
       | 
       | On the last point, the sites that hijack ctrl-f (or CMD-f) often
       | let you through to the normal page browser search with a second
       | attempts at it if their search UI is still on the page.
       | 
       | So on the sites I know do it I just double tap CMD-f and I get
       | the normal page search.
        
         | megous wrote:
         | And often they don't give a poopoo, like github.com.
        
       | hansoolo wrote:
       | I totally agree with all of this. But:
       | 
       | >Let me see scroll bars Please don't hide them for the sake of
       | your "slick" ui. Sometimes I want to click on the scrollbar and
       | drag it. Just a normal web thing.
       | 
       | I don't see any on FF Android :P
        
       | lapcat wrote:
       | [self-promotion] The article author appears to be using Windows,
       | but on Mac and iOS there's StopTheMadness:
       | https://underpassapp.com/StopTheMadness/
        
         | bobbylarrybobby wrote:
         | One of my favorite extensions!
        
       | austin-cheney wrote:
       | There are really only two problems here, and they are as old as
       | the web itself:
       | 
       | 1) Low Expectations
       | 
       | 2) No definitions, standards, baselines defining people and/or
       | practice
       | 
       | As I have been looking at job posts quite a bit lately everything
       | now is a "Senior Fullstack Engineer" position. This is just so
       | lazy. Then you dive into it and what they really want is some
       | combination of Java or Python, R, Spring, and SQL. Not fullstack.
       | You are wasting peoples' time and worse you are advertising to
       | the public that you either don't understand the technology or
       | just don't care about it.
       | 
       | Sigh.
       | 
       | In programming we call this an "X/Y" problem. You want to solve
       | for "X", a desired end state. Instead of X all you can talk about
       | is "Y", the approach you wish you could take. This is a
       | tremendous anti-pattern. Its also why employers are getting 500
       | resumes for open positions and nobody seems qualified.
       | 
       | Instead start with the goal: "We are hiring to build a
       | client/server app that can do '_____'. We expect candidates to
       | write/support features X, Y, Z. Your constraints are: A, B, C."
       | The reason why companies don't do this is typically because they
       | have no idea what they are actually doing and they have also gone
       | down several wrong paths already and have a bunch of broken
       | technology to support. That's why they call this tech debt.
       | 
       | Then when it comes to interview time the employer and the
       | candidates know exactly what the goals are and can ask the
       | appropriate questions to appropriately eliminate each other.
       | Otherwise, its just some horrible combination of a blind date and
       | a game show where an audience gets to ridicule the contestants.
       | 
       | Here is a quick hypothetical example:
       | 
       | We are hiring to build a highly distributed media conferencing
       | application. Developers are expected to write TypeScript, pipe
       | stream data from sockets, work both in the browser and the
       | server, and write test automation. Operating constraints include
       | WCAG AA conformance, a privacy conformance checklist drafted by
       | our legal department, and various performance considerations
       | targeting both execution speed and network latency. Ideal
       | candidates will demonstrate solutions during interview time for
       | network latency, writing application logic in the browser, and
       | state management of streamed data.
        
       | megous wrote:
       | Yeah, this is a life saver, for those affected by a recent fad:
       | window.addEventListener('keydown', ev => {             if
       | ('kf'.indexOf(ev.key) >= 0 && ev.ctrlKey)
       | ev.stopPropagation()         }, true);
       | 
       | For me this goes into a global userscript until browsers put back
       | control into user's hands.
        
       | Cyykratahk wrote:
       | I believe most of the issues with broken link behaviour results
       | from the lack of higher-level methods to override the default
       | link behaviour.
       | 
       | An example: I don't really want to add a click event listener to
       | a link to make it display in a modal (or whatever). Because this
       | event is too low-level and now my listener needs to check
       | modifier keys. What I _really_ want is to somehow tell the
       | browser  "if the current window URL is about to change via this
       | anchor element, call this function instead". The user is still
       | free to open their links in new windows or tabs and my code will
       | not be triggered for those cases.
       | 
       | A CSS example: I don't really want to set cursor images for every
       | element and pseudo-class. I'm forced to list every element that
       | uses the cursor I'm overriding. What I _really_ want is to tell
       | the browser  "use this custom cursor image wherever you were
       | going to use the default (hand/wait/resize/etc) cursor". My code
       | would then be future-proofed for new elements/UI.
       | 
       | Sometimes I feel that certain browser APIs suffer from the XY
       | problem.
        
         | josephg wrote:
         | > What I really want is to somehow tell the browser "if the
         | current window URL is about to change via this anchor element,
         | call this function instead".
         | 
         | This is pretty doable using javascript - just register an
         | onclick on the <a> tag and have your event handler cancel the
         | default navigation behaviour. Your website will then continue
         | to work great even if the user has javascript disabled. And all
         | the built in browser behaviour (like the right click "link"
         | menu, and ctrl+click) still works perfectly.
         | 
         | That said, this is a pretty obscure "trick". It would certainly
         | be nice if the DOM API made this easier to do.
        
           | wwweston wrote:
           | Is there really anything easier to do? If you're disabling
           | the default event, you're doing it to provide some other
           | functionality, which is necessarily going to involve writing
           | a function to attach to a handler, and adding
           | event.preventDefault() at the top is about as easy as it
           | gets. Anything easier would involve eliminating the attached
           | handler, which doesn't make a lot of sense.
           | 
           | Also, .preventDefault() wasn't obscure in the jQuery era; if
           | it's obscure now that's a sad commentary.
        
         | bunga-bunga wrote:
         | Finally I read my sentiment online. We don't need clicks nor
         | pointer events, we need high-level "visit" event.
        
       | amelius wrote:
       | We need a tool that can visit a website, build a summary out of
       | it, and presents it in a standard way, customizable by the user.
       | Like reader mode, but on steroids.
        
         | RGBCube wrote:
         | AI powered Reader Mode, there's your startup idea.
        
       | Waterluvian wrote:
       | This blog doesn't touch on the actual issue at hand: businesses
       | make business decisions, not engineering decisions. It's easy to
       | enumerate a bunch of technical asks and then blame their absence
       | on technical reasons, because it doesn't require any exploration
       | of the business details. It stays in a nice, safe realm.
       | 
       | To be clear, I personally agree with, and want every single item
       | listed in this blog. I'm a big nerd. But I also recognize that
       | I'm nowhere near anything resembling a typical user. What I want
       | is probably not even on the radar of 99% of users of these
       | websites.
       | 
       | It's easy to say, "I want X and having X would make me a happier
       | user." The real question is, "is implementing X an appropriate
       | expenditure of resources if the goal is to build a profitable
       | business?" Usually not. Most users don't know or don't care about
       | X. Be careful with the nerd echo chamber we live in that makes us
       | think these things matter to the common person.
       | 
       | For all of this, one could argue, "yeah but they're being
       | foolish. Long term this is going to bite them." You might be
       | right! I think you're right, too. But that's a business position,
       | not a technical one.
        
         | megous wrote:
         | > is implementing X an appropriate expenditure of resources
         | 
         | Lot of these things just require devs to not actively try to
         | damage the usability of the defaults. It costs money to break
         | the basics that work for free:
         | 
         | - missing keyboard focus indicator? yeah, dev had to go out of
         | his way to remove it, instead of just doing nothing and
         | focusing on the job/content
         | 
         | - can't paste into inputs? someone had to think about
         | preventing this and implemented it
         | 
         | - ctrl+k / ctrl+f is broken? it works if you just write you
         | page and do nothing extra!
         | 
         | - page is blank for people with JS disabled? someone wasted
         | money on a person who had to learn a whole damn programming
         | language and multi-billion dollar company's framework instead
         | of just html/css
        
         | Julesman wrote:
         | Someone those businesses hired sold them on shortcuts that are
         | just bad. Trading UX for production speed isn't a thing.
         | Claiming bad UX is a business decision isn't a thing. Bad UX is
         | bad for business. Sure, some of these concerns aren't as
         | important as others. But generally speaking, the idea that
         | saving time on development at the expense of observing very
         | basic UI conventions is just silly.
        
         | kijin wrote:
         | For many businesses, there's a simple incentive that should
         | make them care: SEO.
         | 
         | Although Google and other search engines have said for more
         | than a decade that their bots can execute javascript and
         | navigate SPAs, the truth is that they are not going to simulate
         | a click on every random element with onClick events attached.
         | In many cases, they will not even execute any javascript.
         | 
         | Even in 2023, <a href="URL"> is the best way to make search
         | engines pay attention.
         | 
         | Popular frontend development patterns have also made it nearly
         | impossible to figure out the semantic structure of a page.
         | Everything is a <div> now. But if you care about how your
         | website looks in a search result, you might still want to
         | designate some parts of the page as <main> or <article> and
         | other parts as <aside> or <nav>. This is especially important
         | if your website contains short user-generated snippets (like
         | tweets) along with a lot of auxiliary information, as semantic
         | tags make it easier for search engines to determine what the
         | main content of each URL is.
         | 
         | In short, many websites would still benefit from enforcing
         | proper semantic markup, like we used to do in the good ol' days
         | of the "no tables for layout" crusade.
         | 
         | Now if the business doesn't care about SEO at all (an
         | increasingly common attitude as websites become app-ified),
         | there's always the atomic option: talk to the legal department
         | about the possible consequences of ignoring accessibility.
        
       | jfarmer wrote:
       | Love this.
       | 
       | The way I think about it is that you assume a level of
       | responsibility whenever you tinker with default affordances. Your
       | "feature" isn't restricted to whatever narrow conception or
       | intention you had when you designed it. It consists in the
       | totality of a visitor's _actual_ experience.
       | 
       | If I change the logic of the the back button, I'm changing what
       | the back button _affords_ on this particular website and become
       | responsible for whatever happens as a result.
       | 
       | That includes confused and frustrated users saying "Screw you and
       | your broken website."
       | 
       | Or take, e.g., the way scrollbars work, which can be very
       | browser-and-OS-specific. Are you _sure_ you want to assume
       | responsibility for that? How sensitive are you to the downside,
       | _really_?
       | 
       | Essentially, you're making your website speak a kind of creole.
       | You've forgone any right to be upset if your visitors don't speak
       | it and shouldn't be surprised if they persist in
       | "misinterpreting" it.
       | 
       | Forget about avoiding such "features" because you want to be nice
       | to your visitors. It always seemed to me they offer limited
       | upside and unlimited downside.
        
         | loeber wrote:
         | Yep, this is exactly right. Websites benefit from _design
         | idioms_ that have been carefully crafted over many years. Every
         | website that disregards these idioms makes itself harder to use
         | because it doesn't speak the same language as what the user is
         | (perhaps without noticing) used to. I wrote about the loss of
         | design idioms at length: https://loeber.substack.com/p/4-bring-
         | back-idiomatic-design
        
       | jeffrallen wrote:
       | We need Dogme95 for websites.
       | 
       | https://en.m.wikipedia.org/wiki/Dogme_95
        
       | KronisLV wrote:
       | I remember the first time when I looked at the Flutter Gallery
       | and was surprised at how things felt just broken in a web
       | browser, for example: https://gallery.flutter.dev (I think it was
       | the Reply example in particular)
       | 
       | Ctrl + click or middle mouse button didn't work on links, right
       | click didn't work, selecting and copying text didn't work,
       | inspect element didn't work (due to how the technology is built),
       | even attempting to zoom the page did nothing.
       | 
       | This article does ring true both because of that experience, as
       | well as some of the SPA implementations I've seen even with more
       | conventional technologies.
        
       | skybrian wrote:
       | A very specific but related tip about not disabling zoom:
       | 
       | You can stop using user-scalable=no and maximum-scale=1 in
       | viewport meta tags now https://lukeplant.me.uk/blog/posts/you-
       | can-stop-using-user-s...
        
         | shadowgovt wrote:
         | I hate when people do this on mobile. The Mastodon web app does
         | this, and it's real unfortunate when I hit a picture in
         | someone's stream and I can't make it bigger even though I have
         | more pixels than cones in my eye.
         | 
         | Please, dear God, I just want to see the whiskers on the cat.
        
       | 8organicbits wrote:
       | > beause "you can't hover or tab on mobile, right?" (wrong)
       | 
       | I'm guessing you do this by adding an external mouse and
       | keyboard?
        
         | shadowgovt wrote:
         | Right, or any one of many assistive devices. The line between
         | "mobile" and "desktop" is a lot blurrier these days.
        
       ___________________________________________________________________
       (page generated 2023-08-05 23:00 UTC)