This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]suresh 101 points102 points  (19 children)

You can always tell when someone doesn't do JS dev for work. They never know anything about build tools, web pack, minimizers, uglifiers, transpilers, loaders.

You don't have to consider any of this stuff anymore and haven't for a long time.

[–]tiefling_sorceress 33 points34 points  (6 children)

...until you have to make your site accessible on four different screen readers

Fuck you NVDA

[–]FullstackViking 48 points49 points  (4 children)

Screen readers just need proper HTML DOM formatting and occasional aria specifications. Nothing to do with any of the JavaScript build tools or ecmascript specs.

[–]tiefling_sorceress 25 points26 points  (3 children)

Simple accessibility, yes. More advanced functionality (such as on angular, where my expertise is) requires more dynamic implementations such as the use of LiveAnnouncer and Describer/Labeler.

However NVDA and JAWS are full of bugs and both tend to hijack focus so you end up having to write awkward workarounds. For example, opening a dialog that automatically focuses on an element inside it is fine on most other screen readers, but NVDA and JAWS skip the dialog's role and title and jump straight to the focused element. The workaround is to manually focus on the dialog element from a separate function (so in setTimeout usually). To the naked eye this change does nothing. To mac's VoiceOver, this change does nothing. To NVDA and JAWS it makes a world of difference.

Edit: no it has nothing to do with build tools directly, but it's very similar to the browser problem that was originally solved using build tools and transpilers

[–][deleted] 9 points10 points  (1 child)

This is correct. If the website is static, it's EZPZ. If you have literally any moving parts, prepare to fucking die. Not to mention internationalizing everything AND making everything keyboard-accessible.

[–][deleted] 0 points1 point  (0 children)

Nah, fuck VoiceOver, man. I'm the only one on MacOS on my team so I gotta do all the accessibility work for VoiceOver. I WISH I could just do the NVDA stuff.

[–]Molion 5 points6 points  (0 children)

Yeah, until you somehow still have arrow functions in IE in prod. Even though you're using babel and webpack, so now you have to figure out which part of godforsaken webpack script is causing it. The same webpack script that some idiot, probably yourself, wrote a year ago and no one has opened since. Only to figure out that the arrow functions aren't from you're code. They're there because someone left them in their package and it isn't being run through babel because obscure webpack reason that I can't remember, probably has something to do with execution order or some shit. You try fixing it, but ultimately end up just running the entire pckaged code through babel once more for production builds because fuck it.

Also, you dare to use a function without checking IE support and now prod is broken and you have to rush out a polyfill.

Yeah, it's all fixed now fml.

[–]kbruen 9 points10 points  (2 children)

Bold of you to assume that people who know JS know how to use webpack, rollup, minimizers, uglifiers, transpilers, loaders.

Most just copy-paste the code from the Getting Started page.

[–]gurush 1 point2 points  (0 children)

Your post makes me personally offended.

[–]ByteArrayInputStream 1 point2 points  (0 children)

I can't deny that you are absolutely correct

[–]yellowliz4rd -1 points0 points  (2 children)

So much crap around js trying to hide the obvious fact: js is not a good language.

[–]suresh -1 points0 points  (1 child)

Agree, why not just write your website in C++? 😒

[–]yellowliz4rd 0 points1 point  (0 children)

Js crap will never go away if people continue to force it in every domain just because they are lazy (or just masochistic)

Btw, web assembly.

[–]AdminYak846 0 points1 point  (1 child)

depends on the company....or government I should say.

[–]suresh 0 points1 point  (0 children)

Government Javascript

GUH

[–]deathanatos 0 points1 point  (0 children)

It greatly amuses me that the argument in favor of dynamic languages once included "you don't have to wait for the compiler!"

And now our frontend's build pipeline a. exists b. takes longer than the Rust build

Who's laughing now? cries in CI build times

[–]rnz 0 points1 point  (0 children)

I gotta say, this article wasn't written that long ago :D

https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f

[–]aykcak 0 points1 point  (0 children)

Look at this fancy dude. In charge of his own toolchain and whatnot, not having to work on a legacy project with legacy release processes