Threads for fly

  1. 1

    OKLCH is human readable. You can easily understand what color an OKLCH value represents simply by looking at the numbers.

    Could someone explain this? I’m not sure I understand how this works, how do I know that oklch(45% 0.26 264) is blue?

    1. 1

      You don’t. Well, you do if you know that .26 points at blue, but that’s not a safe assumption.

      1. 1

        I personally don’t find it very easy to translate the values of any system (OKLCH, HSL, or RGB) into a color in my head. I might be able to guess what a color might look like based on a ROYGBIV color wheel and a degree value, but in practice I find it difficult to account for the fact that 0/360º on the circle is halfway between red and violet, so whereas I would expect 180º to be a pure green, it’s more of a turquoise.

        What I do appreciate, however, is being able to take a known color and make some variant of it with predictable results that are more in line with human perception than raw RGB channel amplitudes. I have had the exact same frustrations with SCSS’ darken() as described in the article; it never looks right.

        Whereas with this new standard, I can do the same thing natively and have it come out looking right. If I have, for example, this known blue:

        https://oklch.evilmartians.io/#45,0.26,264,100

        I can theoretically make a lighter:

        https://oklch.evilmartians.io/#75,0.26,264,100

        or darker version:

        https://oklch.evilmartians.io/#25,0.26,264,100

        …by tweaking just one value. I can do the same with chroma, which I find more valuable when implementing color palettes than saturation.

        What I find confusing is what happens when some combination of values go outside the color space. When this color picker says something is unavailable on any device and renders a “fallback,” is that what the native browser implementation will do, too? Is there any reason not to use a value for which some fallback must be substituted?

        1. 2

          For an ELI5, here’s the minutephysics YouTube video for why the darken() functions in Sass and Less are broken and also CSS’s native blur(): Computer Color is Broken

          1. 1

            Whereas with this new standard, I can do the same thing natively and have it come out looking right.

            And this is exactly the “human readable” part of the new color scheme. With this you can mathematically change the colors and have something get out that looks as expected, especially with regard the lightness and when having two contrasting colors (foreground and background).

            Previously this was somewhat possible by using HSL, however you always had to visually check that the new saturation or lightness works as expected in the proper context.

        1. 1

          So, this is math. Someone has put together a computer program that can do math, and determine what colors have what contrast when laid next to or on top of one another. That is good.

          Meanwhile, the browser (or operating system) knows what colors are on top of or next to each other. Because it is doing the laying out.

          Why, then, is this tool being put in the hands of BILLIONS of web content creators, to use as they choose, rather than into the “Accessibility” or “View” menu of web browsers or operating systems, which can then enforce contrast ratios for users who need it?

          I, for instance, do not need high contrast text on my screen. So there’s no reason for anyone to worry about this for me. Someone else, however, might need text that is HIGHER contrast than the WCAG recommendations. So this site does nothing for them! They still can’t read stuff with the recommended contrast.

          We MUST push for the renderer to enforce high contrast for users who need it, with a best-effort attempt at maintaining the color pallet approximately as designed, while allowing BILLIONS of people to just not worry about this! Because, I assure you, even if billions of web content creators DO worry about this, billions more don’t, and never will. And people with visual difficulties still deserve access to content created by people who don’t care to enforce high contrast.

          1. 1

            Dark Reader is such a plugin. But why not have both accessible websites and a fallback for sites which don’t happen to be accessible?

            1. 2

              Because asking a billion people to choose colors carefully (which will still not make their web content accessible to all vision needs) costs billions and billions of dollars of time and effort, and will still not get 100% (or even 70%) penetration into the market.

              Solving the issue in the renderer will make 100% of sites accessible to ALL vision needs, will allow site designers to choose default designs based solely on their own preferences, and will be billions of dollars cheaper and lead to better outcomes for everyone involved.

              1. 1

                How does making a color palette website cost billions of dollars?

                The number of web developers is definitely well under one billion, though that doesn’t really matter.

                I’m pretty sure automatically turning non-accessible websites into accessible is an AI-hard problem. It’s definitely not as easy as you imagine.

          1. 22
            1. 5

              Well I’m not getting any work done today. Please submit this as a story!

            1. 7

              Color combinations are not and cannot be “accessible”. Accessibility is about giving the user the ability to change (or ignore entirely) color combinations to meet their own needs and make use of the tool or information you are providing.

              1. 3

                Whose definition of accessibility is this?

                1. 5

                  A reasonable one. The correct one. Your tool or information should be usable by the largest number of people with various sensory and information-processing needs.

                  Using high contrast colors allows people who need high contrast colors to use your website. But providing configurable colors, or allowing your colors to be easily configurable via user-stylesheets allows people who need ANY kind of color to use your website.

                  Choosing fixed high-contrast colors and saying it has increased accessibility is like translating your app from Dutch to English and saying you have internationalized your app. Yes, it will probably allow millions more people to easily use your app, but you haven’t actually solved the problem the correct way. The way to solve web colors is to give your colors meaningful names in your style sheet, and to let users pick the colors they need. Putting “Red Orange” text on top of a “Purple Heart” background because some algorithm says they have high contrast isn’t doing anyone any favors.

                  1. 1

                    So your opinion is that WCAG has the wrong definition?

                    1. 8

                      Oh, absolutely, yes. WCAG is incredibly misguided in many ways. Their flashing content recommendations in particular are actively harmful to real people. Putting that on content creators rather than the rendering device is medically dangerous to certain populations.

              1. 5

                The takeaway here seems very wrong. The solution to this problem is to use one of the many barcode formats with built-in error tolerance. Missing a line of pixels should not destroy your data, when you’re probably gluing that barcode somewhere that people can scratch it. This is a design problem, not an implementation problem.

                1. 8

                  OP here; I agree that error detection/correction would be better.

                  Some context:

                  • these events happened 20 years ago
                  • the (hard to sway) customer specified the barcode format
                  1. 4

                    ∀ problems ∃ a solution that’s both perfect and unavailable ;)

                    Seriously, if you’re going to print, it makes sense to print in such a way as to minimise the impact of the hardware’s weaknesses on the output makes sense. It’s like woodworking, where skilled people look at the wood before deciding where to saw, and decide in order to avoid weak spots in the result.

                    You could make something else instead of the thing you’re making. Make a stool instead of a chair, or print something else. That something else would also be best done if you use your tools in a way that suits the materials and requirements.

                    1. 1

                      Aha, implicit project scope requirements defined by the customer. Sounds about right. ;-)

                    2. 2

                      Why not both?

                      1. 1

                        Because if you use a format with error correction, you never have to worry about your printer.

                        1. 3

                          “Never”

                          1. 1

                            No more than anyone does. If your printer fails, you’re hosed, but that’s easy to check. You don’t need a comment in your code that says “// Rotate barcode 90 deg for printing, to avoid dead lines”

                    1. 6

                      This is a 500 error page, so instead of the image saying something like: “Drawing of a woman screwing in a lightbulb”, it makes more sense to use “500 internal server error” as the alt text.

                      It’s worth mentioning here that a browser used with a screenreader will indicate unambiguously that the user has landed on an error page, regardless of the page content. I usually don’t bother reading the content, because … what’s the point?

                      “Drawing of a woman screwing in a lightbulb” is excellent wordplay. The parse is ambiguous. The first thing I thought was, “How did they get a person inside a lightbulb?” Or maybe it’s just the drawing inside the bulb? “Drawing of a woman replacing a lightbulb” would be less loaded. For even less ambiguity: “This drawing depicts a woman replacing a lightbulb”.

                      1. 4

                        I’d argue that exposing the error code at all is an accessibility problem. It requires the user to know what 403 (or what have you) means, and there’s no reason for a non-technical user to know that. For any diagnostic purpose, the user can examine the actual HTTP response via other tools.

                        1. 10

                          I’d argue that exposing the error code at all is an accessibility problem. It requires the user to know what 403 (or what have you) means,

                          This mindset, taken to its extreme, leads to error messages like “something went wrong”. It’s at least partially responsible for things like the hijacking of NXDOMAIN by ISPs. NXDOMAIN hijacking serves two purposes: it prevents the “unwashed masses” from having to deal with a failure case, and it funnels them to ISP-controlled ad portals.

                          I’m a strong believer in the old maxim that knowledge is power. Depriving a user of knowledge deprives them of agency.

                        2. 2

                          “Screwing in” is ambiguous too as some light bulb fixtures are bayonet-type.

                          1. 3

                            That doesn’t make it ambiguous.

                          2. 2

                            Yeah, that didn’t make sense to me either – even without that, the error is already described on the left, so why re-describe it in the alt text? If anything, the image is decorative so the “responsible” take should be to use alt=”” to have screen readers ignore it? (https://www.w3.org/WAI/tutorials/images/decorative/)

                            1. 1

                              It’s worth mentioning here that a browser used with a screenreader will indicate unambiguously that the user has landed on an error page, regardless of the page content.

                              Is this based on the assumption that the screen reader will read the title of every newly loaded page, or something else?

                              1. 2

                                Is this based on the assumption that the screen reader will read the title of every newly loaded page, or something else?

                                Presumably I’ve just gotten lucky and always seen error pages with stock titles. So I have to walk back that assertion.

                                1. 1

                                  I would imagine it would be based on the HTTP response code.

                              1. 1

                                “There is no judgment on which is correct. This is simply for reference.”

                                I’ll make a judgment: The one that reads them as normal english words is correct.

                                1. 4

                                  This is pretty good, IMO. The take-home is: use font-loading: optional; in your CSS, and host your fonts yourself (or at least, the CSS for them). The alternative offered if you can’t bear to make your custom fonts optional is to adjust the metrics of your fallback font to match your custom font. This could be ugly, but it probably won’t be, and it prevents a reflow when your custom font finally loads.

                                  1. 3

                                    Your fonts are always optional, though, no? Because the rendering can’t be enforced by the site. My browser can render it any way I want, and I don’t have to listen to your CSS. So why not make it optional, always? And then get rid of that CSS attribute, and just render and reflow? Because this is all an illusion of control in the first place.

                                    As always, the browser and standards should solve this for us. Developers should not have to type “font-loading:optional;” as boilerplate in every website they make.

                                    1. 3

                                      It’s always optional, but that means many things to many people. font-loading: optional; has a specific meaning as described in the article: that the CSS author would rather have no custom fonts than custom fonts that block loading or jiggle the layout after a slow load.

                                      1. 1

                                        Right, but why do we make the CSS author make that decision? Or rather, why do we allow them to? We should ALWAYS do that. Or better, just have browsers implement the throwaway custom font-width matching tool that this author came up with, for everything? Just forcing every web developer to read this document is THOUSANDS of hours of human-hours that could be better spent on other things. For the millions of web developers who won’t read this document, they’ll have fonts that slow the loading of their websites, for what is almost certainly no reason at all.

                                        So, just…don’t? Don’t let this CSS setting exist: Always do the jiggle thing, but minimize it with a width-matched fallback font. Then, everyone is happy, and nobody has had to invest any time into learning any of this.

                                        There’s so, so many of these “One simple trick to not make your website suck” for users and accessibility that should absolutely just be what happens automatically.

                                        1. 3

                                          If it’s a landing page for a marketing site, the author (or their customers) probably prefer it get better metrics on google by loading faster. If it’s a big interactive experience all on one page load, the custom font is probably important. Letting the authors opt in to the former case seems pretty reasonable.

                                          The browser can’t do the font-width matching because it requires the metrics of the fancy font, which aren’t available before it loads.

                                          In general this stuff can’t be implemented automatically because it’s not universally ideal, or would break the (conflicting, heh) assumptions developers have made over the last 30 years. It’s complicated, but it can also be folded into tools that analyze page speed and provide suggestions, which are in common use.

                                  1. 10

                                    Please don’t use FontAwesome either. If the user disables remote fonts (and there’s a lot of good reasons to do that), you’re liable to just have random boxes or letters scattered around your ui.

                                    Instead, use svgs. And remember, the ui needs to be understandable for people who don’t know the icons too.

                                    1. 7

                                      FontAwesome provides (and recommends) SVGs.

                                    1. 8

                                      As usual with accessibility, going really hard in one direction is often not great site everyone. Here’s another article about why you really want to keep grey / lower contrast for accessibility reasons: https://blog.tiia.rocks/web-apps-why-offering-a-low-contrast-mode-makes-you-more-accessible-not-less

                                      1. 18

                                        If only there were some kind of style sheet, that could cascade in priority depending on where it was defined.

                                        There’s no reason for this to be handled by the developers of every single website. This should be handled by the browser. If a user wants high contrast mode, there’s absolutely no reason there can’t be a setting on the client that forces text to a high contrast setting. It’s just numbers in a configuration file. Those numbers can be changed, automatically.

                                        1. 12

                                          I wish there was some way of saying to browsers, “use modern defaults; I don’t care what they are, or if they change over time; I won’t touch the style; just make the page look good based on the semantic markup.”

                                          1. 1

                                            could this be accomplished with a stylus style sheet or something similar? maybe an addon that just removes all style tags and links to style tags?

                                            1. 4

                                              There are generic Firefox addons like this but they are generally quite CPU hungry.

                                              I end up just doing:

                                              • disabling all custom or web fonts
                                              • setting minimum font size to 12
                                              • setting default zoom level to 120 %

                                              For web apps that I need to use for work (Outlook web app, Jira, &c.) that have bad contrast, I do try to add custom style sheets to fix some text that’s still unreadable to me after all this.

                                              For articles, I can generally use “reader mode” that does switch to black-on-white, since, you know, that’s the best for reading, but that’s generally not helpful on web apps.

                                              In short, I’d be very happy if it was practical to make a stylesheet or plugin to do this, but currently I would say it’s not, or someone would have made one already.

                                              It seems unlikely ranting at web developers will help with this, so I think it would need to be fixed in browsers, However, I see that as an unlikely development, given that e.g. disabling custom fonts is becoming harder and harder, with for example Firefox for Android removing the ability to disable custom fonts.

                                              1. 3

                                                https://github.com/jayesh-bhoot/enforce-browser-fonts is an add-on that disables custom fonts, and it works quite nicely on Firefox for Android if you’re using Nightly or F-Droid that supports custom add-ons.

                                          2. 2

                                            This is the reality. Firefox has allowed, and continues to allow, forced colors. Go to about:preferences -> Colors, and activate “Manage Colors”. In the menu that pops up, set your preferred colors and set the “Override the colors specified by the page with your selections above” pref to “Always”. This feature is a lifesaver for me, as I deal with overstimulation and can’t stand having a new palette thrown at me every time I open a new page. It’s also replaced my dark mode addon; anything that gets rid of privileged addons is a win in my book.

                                            On Windows, you can enable this system-wide with High Contrast mode. Contrary to the name, WHCM isn’t necessarily for high-contrast themes; you can set any palette you want. Every decent program will then receive a forced palette.

                                            1. 1

                                              I would like to use this, but it’s regrettably not practical. As an example it prevents me from seeing the upvote arrow on your comment, and whether I’ve voted already.

                                              1. 2

                                                This is something that browsers (all 3? 4? of them) can improve, though, rather than asking a billion web content creators to behave nicely towards any of hundreds of access concerns.

                                                1. 2

                                                  Yeaaah…I used to be a fan of the lobste.rs interface before I started learning about accessibility. This is far from the only a11y issue on this site.

                                                  I try to avoid complaining things before filing issues properly and leaving constructive feedback, so here are two I just filed:

                                            2. 13

                                              Why not just lower the screen brightness?

                                              1. 4

                                                You could, but then you get extra-lower-brightness for other apps/pages which don’t buy into the white/black idea. I don’t think we’ll get the perfect solution either way.

                                                And even if you adjust brightness, it can be a bad experience. I don’t get any actual health/sight issues from brightness or high contrast, but even with everything turned down to minimum on my phone, that medium post is tiring to read because of the white background.

                                                1. 5

                                                  So it actually is low contrast that causes the problem.

                                                  1. 6

                                                    Only if you can adjust all screens to both go down in brightness low enough and without destroying the colour accuracy.

                                                    We’ve got a system with at least 3 interdependent elements in it (defaults, preferences, design ideas, hardware capabilities, accessibility limits, …) - you can’t just point so one of them and say that causes all the problems. (Well, you can, but that’s oversimplification and doesn’t solve any issue)

                                              2. 10

                                                …and I immediately had to flip that article into reader mode in order to read it. Which is not to say it’s wrong, but the contrast between the author’s experience and mine is illustrative, and one-size-fits all probably just isn’t going to work here. As she points out there are media queries, but:

                                                @fly suggested in another comment here that this really should just be the browser’s responsibility, not the page’s, and I agree. For articles I tend to flip into reader mode at the first sign of trouble, but for apps I don’t really have that option. But for desktop apps developers mostly don’t have different styles of buttons; they just use the OS’s widget toolkit and accept what the OS vendor has decided. (of course, that’s changing as everything seems to be electron these days anyway…)

                                                1. 10

                                                  This is one reason why the APCA (next generation contrast algorithm) recommends against excessively high contrast, especially for dark themes.

                                                  It’s not just halation and migrations: overstimulation is another issue that I personally experience quite a bit. Foreground colors that have excellent contrast against dark backgrounds, like yellow, can cause overstimulate if they’re not appropriately de-saturated.

                                                  Special palettes that respond to media queries requesting dark/light schemes and more/less contrast are good, but I believe that defaults should also be as accommodating as we can make them; not everyone is okay with the fingerprinting potential of all these media queries. An APCA contrast of ~90 LcP seems to do the trick. You can go lower if you bump up the font size to compensate.

                                                  1. 2

                                                    Typo: s/migrations/migraines/

                                                    s/cause overstimulate/overstimulate/

                                                  2. 9

                                                    The goal of accessibility design is not making things “great [for] everyone”. It is ALLOWING people to make things great FOR THEM. Some users will have needs that require high contrast. Some users will have needs that require high contrast. Others won’t particularly care at all, and just want things to be pretty. Others don’t care about the contrast because they’re using a screen reader.

                                                    You can’t make things accessible by choosing colors. We have to enable users to configure their interfaces with the colors that they, personally, need or want. This has to be done largely at the browser level, although of course stuff like clear, semantic HTML that doesn’t use clever tricks to do things purely visually is a big part of the ask. But developers shouldn’t be forced to worry about colors. We should be forced to worry about allowing browsers to configure those colors.

                                                    1. 1

                                                      Agreed. I think a better message here would be “use grey text responsibly”.

                                                      I often set body text to 65–75% opacity and reserve 100% opacity for headings, etc. It helps build visual hierarchy while retaining a good amount of contrast. This produces both a nice appearance as well as readable content.

                                                    1. 2

                                                      Isn’t this just setters?

                                                      1. 4

                                                        It is indeed a setter in disguise :) There are two differences though:

                                                        • it needs T rather than &mut T, which prevents using it for modification unless you own the data (you kinda still can do that via mem::replace, but that’s very visibly a hack)
                                                        • intended semantics/naming is “only use during construction”
                                                        1. 1

                                                          Ahhh now I get it. Very nice!

                                                          1. 1

                                                            If you’re going to expose these setter methods like this, why not make all of the fields public? Then you could use the struct initialization syntax and save yourself a lot of boilerplate.

                                                            If struct initialization is insufficient (for example, if you want to call a more complex mutator method during initialization), then the most general solution seems something like Clojure’s doto macro:

                                                            clojure.core/doto
                                                            ([x & forms])
                                                            Macro
                                                              Evaluates x then calls all of the methods and functions with the
                                                              value of x supplied at the front of the given arguments.  The forms
                                                              are evaluated in order.  Returns x.
                                                            
                                                              (doto (new java.util.HashMap) (.put "a" 1) (.put "b" 2))
                                                            
                                                            1. 2

                                                              Sure, if you could make all fields public, just do that! The Shape example is illustrative, not motivational.

                                                              I think such “functional update” isn’t equivalent to just making the field public:

                                                              • it prevents mutation after construction
                                                              • it allows not exposing the getter
                                                        1. 10

                                                          And before we continue, let’s make it absolutely clear that we have no control of the color of the text in this very article, as it is hosted through Medium.com, which features poor visual accessibility of their site design.

                                                          Why is it used then? Put your actions where your mouth is and don’t use it.

                                                          1. 9

                                                            The thing is, Medium doesn’t feature poor visual accessibility of their site design. Virtually every Medium article renders great in Reader Mode on Safari or Chrome, which lets you choose the font, font size, and contrast pretty easily.

                                                          1. 4

                                                            “ As a user, you can force allow zooming”

                                                            Isn’t this problem solved, then?

                                                            1. 21

                                                              No. Just because there’s an option to enable it, that doesn’t mean disabling it should be encouraged. Not everyone knows about the option, for one thing.

                                                              1. 10

                                                                You’ve identified a web browser UI design problem, which can be solved by the probably-less-than-double-digits number of teams developing popular web browsers, rather than by asking tens of millions of web content creators to change their behavior.

                                                                1. 5

                                                                  Perhaps browser makers can treat it like a potentially undesirable thing. Similar to “(site) wants to know your location. Allow/Block” or “(site) tried to open a pop up. [Open it]”

                                                                  So: “(site) is trying to disable zooming. [Agree to Disable] [Never agree]” or similar.

                                                                2. 8

                                                                  I think the better question is why can you disable this in the first place. It shouldn’t be possible to disable accessibility features, as website authors have time and time again proven to make the wrong decisions when given such capabilities.

                                                                  1. 3

                                                                    I mean, what’s an accessibility feature? Everything, roughly, is an accessibility feature for someone. CSS lets you set a font for your document. People with dyslexia may prefer to use a system font that is set as Dyslexie. Should it not be ok to provide a stylesheet that will override system preferences (unless the proper settings are chosen on the client)?

                                                                    1. 3

                                                                      Slippery slope fallacies aren’t really productive. There’s a pretty clear definition of the usual accessibility features, such as being able to zoom in or meta data to aid screen readers. Developers should only be able to aid such features, not outright disable them.

                                                                      1. 6

                                                                        I think this is a misunderstanding of what “accessibility” means. It’s not about making things usable for a specific set of abilities and disabilities. It’s about making things usable for ALL users. Color, font, size, audio or visual modality, language, whatever. It’s all accessibility.

                                                                      2. 1

                                                                        https://xkcd.com/1172/

                                                                        (That said, I don’t understand why browsers let sites disable zoom at all.)

                                                                    2. 6

                                                                      Hi. Partially blind user here - I, for one, can’t figure out how to do this in Safari on IOS.

                                                                      1. 3

                                                                        “Based on some quick tests by me and friendly people on Twitter, Safari seems to ignore maximum-scale=1 and user-scalable=no, which is great”

                                                                        I think what the author is asking for is already accomplished on Safari. If it isn’t, then the author has not made a clear ask to the millions of people they are speaking to.

                                                                        1. 4

                                                                          I am a web dev dilettante / newbie, so I will take your word for it. I just know that more and more web pages make browsing them with my crazy pants busted eyes are becoming nearly impossible to view on mobile, or wildly difficult enough so as to be equivalent to impossible in any case :)

                                                                          1. 4

                                                                            And that is a huge accessibility problem. This zoom setting is a huge accessibility problem.

                                                                            My point is that the solution to this accessibility problem (and almost all accessibility problems) is to make the browser ignore this setting, not to ask tens of millions of fallible humans to update literally trillions of web pages.

                                                                            1. 4

                                                                              As another partially blind person, I fully agree with you. Expecting millions of developers and designers to be fully responsible for accessibility is just unrealistic; the platforms and development tools should be doing more to automatically take care of this. Maybe if the web wasn’t such a “wild west” environment where lots of developers roll their own implementations of things that should be standardized, then this wouldn’t be such a problem.

                                                                              1. 2

                                                                                Agreed. Front end development is only 50% coding. The rest is design, encompassing UX, encompassing human factors, encompassing accessibility. You can’t apply an “I’m just a programmer” or “works on my machine” mindset when your code is running on someone else’s computer.

                                                                                1. 2

                                                                                  Developers and designers do have to be responsible for accessibility. I’m not suggesting that we aren’t.

                                                                                  But very often, the accessibility ask is either “Hey, Millions of people, don’t do this” or “Hey, three people, let me ignore it when millions of people do this”. And you’re much better off lobbying the three people that control the web browsers to either always, or via setting, ignore the problem.

                                                                      1. 12

                                                                        I know it’s not constructive but I really feel a bit weird about emoji in general. Obviously people seem to like them and they’ve gained an immense amount of adoption but I still feel like pictograms that differ based on platform, version and implementation are absolutely cursed for conveying information.

                                                                        What I mean is: pictures are already lossy at evoking an idea or connotation in the viewer. Pictograms are even more lossy since they are simplified pictures.

                                                                        So it’s already an extremely lossy medium and depends heavily on context; even if we both have the same model of phone on the same version of an operating system.

                                                                        When you add uncertainty in the outcome then it only gets worse.

                                                                        I have also ran afoul of assuming that the race of a particular emoji was an intentional choice intended to convey a particular meaning (I assumed a racist one, actually), when in fact it was just that the person sending it preferred that race of emoji…

                                                                        1. 9

                                                                          Miscommunication is already common with words. Language drift happens a lot. Connotations of words change more rapidly than anyone can responsibly keep up to date on. I don’t think Emoji are much worse that in that regard.

                                                                          In fact, I’ve had better communication with emoji than without. That’s before discussing the artistic merits. Emoji are fun! ❤️

                                                                          Imagine if I had ended my comment with 😃, 🥺, 😒, 🧐, 👌, or 🖕.

                                                                          The connotations are ❤️ is attempting to convey positive feelings about emoji and my goodwill towards those reading my comment, whereas 😃 would be more personal enjoyment.

                                                                          1. 3

                                                                            In fact, I’ve had better communication with emoji than without. Imagine if I had ended my comment with👌

                                                                            That would’ve been a really bad idea because, depending on where your interlocutor is from, it means OK, this is worth nothing, you’re an asshole, you’re gay (and not meant in a good way), possibly are you gay because I’m also gay wink wink (this is the only one that I’ve only heard about, but I’ve never seen it used like that), or the same thing that’s meant by 🖕.

                                                                            FWIW, where I’m from, it means either “this food is good” (it’s understood as “OK” but only when referring to food, due to circumstances that are really complicated to explain – if you tried to use it in any other context it’s quite likely that no one would get it) or, among younger people – again, for reasons that are really hard to explain – it means “let’s smoke together”, and I don’t mean tobacco.

                                                                            Edit: I don’t mean to say that emojis are bad and they’re a waste of time. They’re cool and I use them all the time and usually, when these things happen, they’re funny. But using them in a professional setting is… probably as bad an idea as back when they were called emoticons. Politics aside it’s really something that can come out wrong for all sorts of reasons, starting with cultural differences and ending with rendering differences.

                                                                            1. 3

                                                                              I am actually aware 👌 is obscene in other cultures. 🙂 Gestures (and body language) can vary significantly from place to place. Perhaps I should have mentioned that. I don’t think emoji make things worse or better in that regard.

                                                                              I do use emoji in professional emails but I stick to a few positive ones that are commonly understood in the US: 😃, 🙂, 😉, and 👍. I use them to convey emotional content that would otherwise be missing.

                                                                              I see people in my company using 🙏 for gratitude. It confused me at first because I recognized it as “praying”, but once I understood the meaning, it became a nice personal touch because it’s used differently than “thank you”. If someone replied with that, you know what you did was meaningful for them.

                                                                              1. 4

                                                                                I think it’s safer to only use words. They’re less ambiguous.

                                                                                But then, of course, since I’ve been legally blind my whole life, I’m used to missing gestures in in-person conversations.

                                                                                I see people in my company using 🙏 for gratitude.

                                                                                On the one hand, thanks to Unicode standardization, screen readers can announce that emoji as “folded hands”. On the other hand, I had no idea what that meant until you explained it. Wouldn’t it be better to simply express gratitude in words?

                                                                          2. 4

                                                                            Can you give some examples? I usually find emoji to be crystal clear so I’m very intrigued.

                                                                            The one exception is Skype’s emoji which are a MESS, eg Face With Monocle is flirty, Pensive is anxious, Weary Cat is excited, etc. Their illustrator is very confused about human emotions.

                                                                            1. 8

                                                                              I can give a few.

                                                                              🥺 :: I interpret as “cute, pleadfull” my girlfriend interprets as “sad”.

                                                                              😤 :: I interpret as “frustrated”, my girlfriend interprets as angry (a seemingly minor but important difference)

                                                                              💙💗💜♥️ :: I don’t know the distinction between these.

                                                                              🤐😶 :: I don’t know the distinction between these.

                                                                              🚃🚋 as above

                                                                              💂‍♀️💂💂🏻‍♂️ As above.

                                                                              If you ask me a question about a co-worker and I write down: 😅😶🥸 in reply.

                                                                              Am I claiming to know something but not say it, or am I stressed by what you’re saying and want to avoid it?

                                                                              As for other platforms, I can only speak to my experience talking to people on android, I don’t much feel like breaking out my old android device to show the difference, but the differences are well documented.

                                                                              There is a paper about this (that I just found: https://ojs.aaai.org/index.php/ICWSM/article/download/14901/14751/18420)

                                                                              Page 5 of this paper shows the glaring difference between emojis on windows vs other platforms: https://arxiv.org/pdf/1709.04969.pdf

                                                                              1. 8

                                                                                😤 :: I interpret as “frustrated”, my girlfriend interprets as angry (a seemingly minor but important difference)

                                                                                Particularly funny since this emoji was originally named “Face with Look of Triumph”, which doesn’t match either interpretation :)

                                                                                1. 2

                                                                                  Great examples, thanks. I guess my friend group and I tend to naturally avoid these ambiguous emoji but you’re absolutely right that those are not clear, and that’s without the platform discrepancies.

                                                                                2. 7

                                                                                  The canonical example is the gun debacle.

                                                                                  1. 6

                                                                                    Emoji feel a bit to me like someone else is choosing my language for me. The gun debacle is an obvious example, but also why is there a hamburger emoji but not a laksa emoji? Why is there not an erect penis emoji? And that’s not even going into the minefield of what something like U+1F45A [ Womens Clothes ] should mean and should be rendered as. Most platforms render that as a pink blouse ffs.

                                                                                    And its not solvable - we’ll have to either keep on adding more and more emoji, or start reusing emoji (look at my enormous eggplant!).

                                                                                    Bah humbug. Give me a smiley face, an alphabet (or equivalent) and a language to use them with.

                                                                                  2. 1

                                                                                    GMails emoji are also awful and unbelievably ugly. Why they don’t use system emoji I’ve no idea…

                                                                                1. 4

                                                                                  I’ve never been a fan of printf or f strings or any string substitution stuff like this. I can’t possibly be the only person who reads this:

                                                                                  print(f"{f'${number:.3f}':>10s}")
                                                                                  

                                                                                  And thinks it is completely, unfathombly unreadable, am I?

                                                                                  Is that really preferable to something less magical that takes more lines of code?

                                                                                  1. 9

                                                                                    I really like f-strings, but I would not write that. I’d rather break that out into a couple lines.

                                                                                    1. 3

                                                                                      I prefer format strings because it makes it easier to “see” what the string is going to look like, as opposed to a bunch of concatenation, probably spread across lines. That being said, you’ve got some weird nested stuff going on there that I probably wouldn’t use, so maybe I partially agree?

                                                                                      1. 2

                                                                                        You can use f-strings to write readable things as well.

                                                                                        logger.info(f"Folder for {show.name} is missing, creating...")
                                                                                        

                                                                                        Instead of

                                                                                        logger.info(f"Folder for " + show.name + "is missing, 
                                                                                        creating...)"
                                                                                        

                                                                                        The latter example is not valid Python but you get the point.

                                                                                        1. 4

                                                                                          Nitpick: You should probably not use fstrings for logging, since I believe they’re interpolated every time, even if your log level is below that.

                                                                                          1. 3

                                                                                            Ah, thanks! I hadn’t thought of that.

                                                                                            1. 2

                                                                                              Wouldn’t the concatenation also happen every time, though? Logging functions are just regular functions, so their arguments are evaluated before the function is called, right?

                                                                                              1. 1

                                                                                                Yes. Here’s how to avoid unnecessary interpolation:

                                                                                                logger.info("Folder for %s is missing, creating...", show.name)
                                                                                                

                                                                                                Most linters will warn about this.

                                                                                                1. 2

                                                                                                  I’d forgotten all about that! Haven’t used Python logging in a bit :-) Thanks!

                                                                                        1. 10

                                                                                          I’m a 40 year old software developer who doesn’t know how to use vi, vim, neovim, or emacs, and I make a frankly unreasonable amount of money. Why would text editor choice possibly affect someone’s employability?

                                                                                          1. 28

                                                                                            I love coding interviews because they are so much fun to do as a candidate. That said, stuff like this:

                                                                                            firmly believe they are the most objective way to evaluate candidates

                                                                                            This presumes candidates have experience like yours (or that experience like yours is what you’re trying to measure). I had a very senior coworker fail an interview once due to lack of knowledge of parsing strategies / parse trees. This person is not just “can code” but also can architect, lead, etc, but failed due to a question with the assumption that “anyone smart must ha e been exposed to parsing”.

                                                                                            That’s why I always prefer a portfolio-based interview. Then the problem they are explaining to you is one they know how to solve because they have already solved it! Of course, this doesn’t work well if you want to be able to hire career-long corporatists who have no portfolio. There is no one size fits all interview.

                                                                                            1. 34

                                                                                              I’ve only done a couple of coding interviews and it turns out I have pretty bad performance anxiety and forget basic stuff or get so worked up I can’t think straight.

                                                                                              Apparently this would mean that I have faked the last 20+ years, dozens of open source projects, ~15 conference presentations, and several peer-reviewed papers.

                                                                                              And frankly if you think that’s the case then you should hire me because I’m obviously an amazing social engineer. :)

                                                                                              1. 4

                                                                                                Repeated claims of “interviews are so hard, I get anxious, etc. etc.” in order to get an easier-to-pass process are also social engineering.

                                                                                                (I’m not saying you’re doing this…just you jogged my brain with your phrasing at the end there.)

                                                                                                My experience has been that as we’ve tried to be more accommodating as an industry, we’re getting more and more bad or ineffective actors into our systems. Given that my favored fair approach is too ruthless for most companies–hire anybody with a pulse who can fog a mirror and open an IDE, fire them after a week if they suck, repeat as needed–I think we’re definitely in for some trouble. This is compounded so much more than people wish to admit with the current implementation of DEI efforts, employee resource committees (or whatever your local version of officially-sanctioned factional support groups is), and so forth.

                                                                                                I don’t know what the right answer is, but I’m pretty sure dropping interviews ain’t it.

                                                                                                1. 3

                                                                                                  That’s not too brutal, HR doesn’t like it because it’s more work for them; management doesn’t like it because they’re afraid to fail unconventionally. Also then they’d need to work out a good onboarding process. Obviously you have to tell people you need them to do a week long paid interview.

                                                                                                  1. 3

                                                                                                    For me, instead of a live coding interview, I very much prefer a 1-2 hour take home project. I knock those out of the park pretty well.

                                                                                                    It would be nice to have the option.

                                                                                                    1. 2

                                                                                                      I do like those, but I think they should be paid and I usually think they’re poorly designed/scoped. And when you’re doing a lot of interviewing at the same time, it can get annoying having that pile of stuff in the background.

                                                                                                    2. 2

                                                                                                      Doesn’t that produce way too much overhead with training the new hires? Someone has to do the onboarding, especially with complex projects (and aren’t they all, nowadays?) or junior hires! Usually it takes a while (a week to a month) before someone is properly up and running anyway. If you have to do that with your shotgun approach to hiring, that would put a big cap on overall productivity while you’re in “hiring mode”.

                                                                                                  2. 6

                                                                                                    This presumes candidates have experience like yours (or that experience like yours is what you’re trying to measure).

                                                                                                    Is there any interviewing technique that doesn’t?

                                                                                                    That’s why I always prefer a portfolio-based interview.

                                                                                                    This assumes that the candidate has time to build a portfolio, or is comfortable talking about their previous job’s likely-proprietary code. It also biases towards candidates with interests like yours.

                                                                                                    And it’s not uniform, which allows a huge amount of subjectiveness to creep in.

                                                                                                    There is no one size fits all interview.

                                                                                                    And yet, giving different types of interviews to different candidates is a non-starter for hopefully obvious reasons.

                                                                                                    1. 13

                                                                                                      Is there any interviewing technique that doesn’t?

                                                                                                      Yes. @singpolyma is proposing a portfolio review, which encourages the candidate to teach the interviewers about a subject they are unlikely to be as familiar with as the candidate. That’s a very relevant skill that code challenges can’t demonstrate.

                                                                                                      It also biases towards candidates with interests like yours.

                                                                                                      I once had a candidate walk us through her ClojureScript project. We didn’t know ClojureScript or have any particular interest in it. But it was the only non-proprietary code she could show us. She was able to demonstrate both her skill in writing software and, just as importantly, an ability to explain her decision making and values in the process. We had to swallow our pride and ask some questions about syntax, but it was one of the best interviews I’ve ever conducted.

                                                                                                      Yes, there was a lot of subjectivity in that interview. That’s life. But interviewers will practice an open or closed mind regardless of format. It’s the code challenge that’s the greater refuge for closed mindedness.

                                                                                                      1. 2

                                                                                                        I would care to bet that part of the intention behind ‘with interests like yours’ is an interest in having programming projects at home. I know this is not a universal opinion, but I think that having personal projects is irrelevant to the performance of a senior engineer.

                                                                                                      2. 5

                                                                                                        And yet, giving different types of interviews to different candidates is a non-starter for hopefully obvious reasons.

                                                                                                        Not obvious at all. Why not allow candidates to choose between (eg) coding interview and portfolio review?

                                                                                                        1. 3

                                                                                                          Presumably because comparing candidates who went through radically different interviews would be tremendously difficult.

                                                                                                          1. 4

                                                                                                            Hmm. I guess I’ve never been a low demand high supply enough situation to be “comparing candidates”, at least for full time.

                                                                                                            1. 4

                                                                                                              I guess that means you either get very few applicants or that you’re so selective that almost all get filtered out and your search ends as soon as you find one that passes.

                                                                                                              On multiple occasions, I’ve found myself in the intermediate situation where multiple good candidates showed up at the same time, but I still had to choose one. In that case, even if you allow people to demonstrate themselves with some freedom, you also need a basis in order to carry out the unfortunate task of comparing them.

                                                                                                              1. 3

                                                                                                                You could just flip a coin.

                                                                                                                If you have 2 candidates who have impressed you, why does one have to be better or worse, and what makes you think you have the process or information to determine who is better? Just pick a winner at random. Or pick the one who used a sans serif font on their resume, or some other arbitrary factor.

                                                                                                                1. 2

                                                                                                                  Exactly. Either just hire them both (are you really not gonna need another any time soon?) Or else it doesn’t really matter which you pick.

                                                                                                                  1. 2

                                                                                                                    Ironically, as strange as that sounds, both your suggestion of hiring them both and @fly’s suggestion of flipping a coin would’ve worked quite well in my case in hind sight…

                                                                                                                    1. 2

                                                                                                                      I don’t think that’s ironic. I think that’s the point.

                                                                                                    1. 5

                                                                                                      That person’s hands were tied, and there was no useful way to do anything about it. The “infra” which had accreted at this company forced us into any number of terrible patterns, and this was the path of least resistance that still worked. He was biasing for useful outcomes and to his credit was being very careful about it.

                                                                                                      It was either “edit in prod” or endure DAY LONG development cycles: make a change, wait 24 hours, come back tomorrow, and try it again. That’s how broken it was.

                                                                                                      Does he not get paid either way? Forcing costs to expose themselves by doing things the way bad systems force us to is how you force companies to fix bad systems. Show management what their bad infra really costs, and they might be motivated to fix it. It’s not your job to work around your boss’s bad decisions.

                                                                                                      1. 7

                                                                                                        I would love to know how people get these things fixed in practice. Maybe it’s my own experience that is out of the ordinary in this regard, but I’ve yet to see an instance where so-called bad practices are replaced with so-called good practices in a way that satisfies everyone and that makes things actually better (where better means simpler, faster, safer, etc.). My experience has been that trying to go from a lackluster infra to a by-the-book infra is extremely difficult and more than likely to fail.

                                                                                                        One approach is the Hero Approach. An engineer notices a problem in the infrastructure and has the knowledge of all the parts (code, build system, CI, cloud infra, secret management, deployment, orchestration) as well as all the necessary accesses to go and fix the situation by themselves and impose it. This usually has the downside of creating a situation where only one person really understands how the whole system works and they might have a blind spot to the needs of certain groups of users.

                                                                                                        Another approach is the Committee Approach. Engineers from every relevant group (devs, ops, SRE, etc.) are put on a team to discuss and improve the infra situation. After everyone has stated their particular desirata (devs want to be able to connect to live systems to gather data on issues; ops wants every action to be automated with no human in the loop; SREs want every part of the system to be elastic; etc.), it feels like there are no solutions which will satisfy everyone. Meetings are planned to discuss options, but really the whole effort just peters out.

                                                                                                        I know it’s hard to give general advice when most of the problems are going to be specific, but I’d like to hear stories of teams that went from, for example, “we modify a config file in prod” to “we have a configuration distribution system” (or whatever) where all parties felt (devs, ops, SREs, managements, customers) recognized that the new solution was objectively better in all regards.

                                                                                                        1. 5

                                                                                                          The Phoenix Project is a fun work of fiction that made me feel like it would be possible to complete a transition like this.

                                                                                                          1. 8

                                                                                                            I read The Phoenix Project last year, and though it was fun and cathartic by moments, I found that I finished reading having more unanswered questions than before I started.

                                                                                                            Going back to the example of a config file, what I got from The Phoenix Project was that we wouldn’t want a human to go and modify the file in prod; instead, what we (should) want is an automated, repeatable, computerized process that will apply config changes.

                                                                                                            But doesn’t that automated process necessarily entail a big bump in complexity? Where we had no code before, now we need an entire system that must manipulate configuration files, has its own set of challenges (how do we detect and handle errors while writing a new config file?), and has to deal with all the not-so-fun stuff of writing and maintaining software. What about authentication? I’m guessing we’d want a secrets management solution, but that’s more complexity, more possible points of failure. How will our config modification service get the right permissions? A new layer of administrivia? And what’s the actual process for making a config change? Is it an obtuse process that requires a PR in GitHub with at least two approvals and feels like trying to do surgery with blacksmith gloves on?

                                                                                                            So if we recognize that editing config files in production is a form of normalization of deviance and we want to address it, it seems that we are immediately faced with a long and complex project that would take engineering resources away from other endeavours, the number of hard tasks is immediately intimidating, and there are a number of questions that don’t seem to have an immediate good answer.

                                                                                                            So going back to my original question: how do people manage to get it done? Are there ways to introduce the changes incrementally and gradually in a way that does not require the whole world to change how they do things? Would seriously love to hear successful war stories here.

                                                                                                        2. 4

                                                                                                          does he not get paid either way?

                                                                                                          Not for much longer, no. Unless he wants to lie and say “this can’t be done” instead of “I refuse to do this.”

                                                                                                          1. 1

                                                                                                            It’s not your job to work around your boss’s bad decisions

                                                                                                            I agree with your sentiment here, but sometimes you do what’s best for the business (or at least what you think is best) to keep it running since it is how you make money. I think secretly working around a problem just to avoid conflict or to be assertive is likely a problem in many of these scenarios though, and in that case I think I might say what you said in a different way: it is your job to fix (not work around) your boss’s or colleagues bad decisions. It is what will make you a leader. Might be thankless, but it will be the right thing.

                                                                                                          1. 5

                                                                                                            writing markdown is faster than applying styling by using the mouse

                                                                                                            Strawman detected.

                                                                                                            1. 3

                                                                                                              I’ve never known anyone who uses hotkeys for styling in Word. I’ve tried to learn them and they’re too inconsistent. None of these programs are designed with hotkeys in mind.

                                                                                                              1. 9

                                                                                                                Cmd-I for italics or Cmd-B for bold should work in every program dealing with text. Please don’t tell me they don’t work in Word (which I’ve rarely used).

                                                                                                                1. 3

                                                                                                                  That is true if, and only if, your Office is in English.

                                                                                                                  In Portuguese, I am sure Ctrl+N is the keystroke for making it bold (negrito in Portuguese).

                                                                                                                  Therefore, @theblacklounge has a point: the keystrokes aren’t consistent in Word, and not consistent among same version in different idioms.

                                                                                                                  1. 2

                                                                                                                    In Portuguese, I am sure Ctrl+N is the keystroke for making it bold (negrito in Portuguese).

                                                                                                                    I would be surprised as it would surely conflict with the new document shortcut.

                                                                                                                    1. 2

                                                                                                                      You would think that, but that is solved in a very elegant manner! I can’t speak for Portuguese, but in Norwegian ctrl + F is not search, it is bold because of the Norwegian word for bold is “fet”. So how do you search? Ctrl + B of course. That key isn’t used for anything.

                                                                                                                      It wouldn’t surprise me that Ctrl + F is new file in Portuguese Office…

                                                                                                                    2. 2

                                                                                                                      I think you’re abusing the phrase “if and only if”. Pretty sure last time I used Office in Hebrew, the keyboard shortcuts were all the same.

                                                                                                                      1. 2

                                                                                                                        That’s not an iff with two f’s — I have never used Office in English.

                                                                                                                        You are correct that Ctrl+N makes bold text in Microsoft Office on Windows in Portuguese, but that is obviously something you managed to learn, with a simple mnemonic. Compared to learning vim, it seems fairly manageable.

                                                                                                                        1. 1

                                                                                                                          That is true if, and only if, your Office is in English.

                                                                                                                          Yes. I need to use Word at work. In German Word, it’s CTLR+F for making text bold (as the German word for “bold“ is “fett”). Since for office documents sent to me I use LibreOffice at home (which does use the familiar CTRL+B regardless of locale) I am eternally suffering by Word’s special way to handle this.

                                                                                                                        2. 2

                                                                                                                          You’re not supposed to just bold text, so that’s a pittance. They’ve put so much work in the semantic styles but only the first 3 styles have their own hotkeys, and my European keyboard breaks one of them.

                                                                                                                          1. 3

                                                                                                                            I mean… Isn’t there a similar gap in semantic styling in Markdown itself?

                                                                                                                            1. 2

                                                                                                                              If your output is HTML+CSS, you can manually add styling information to Markdown.

                                                                                                                              To me, the ability to seamlessly “escape” into HTML is a big draw of Markdown. I despise its table syntax so I generally just use HTML tables in the rare cases I need them.

                                                                                                                              1. 2

                                                                                                                                The HTML “escape” makes Markdown internally inconsistent (as if it wasn’t already due to lack of standardisation) and one of the most complex formats invented, right next to MS Word.

                                                                                                                                1. 2

                                                                                                                                  There are 2 kinds of programming languages text markups: the ones everyone complains about, and the ones no-one uses.

                                                                                                                                  1. 1

                                                                                                                                    Very well. But in case anyone’s curious, here’s the text-markup-no-one-uses that I’ve got my eyes on: DocBook.

                                                                                                                                    (Content warning: good stuff, but also written by Eric Raymond, whom you may find disagreeable. Shoot the proverbial messenger, though, not the message.)

                                                                                                                                    1. 1

                                                                                                                                      DocBook looks like XML to me. If I were to accept XML, I’d rather use a tool to generate conformant XHTML and use CSS to get different outputs.

                                                                                                                                      The point of MD (and similar, like reStructured Text, Textile, Asciidoc etc) is to avoid the tagsoup of {SG,H,X}ML when actually writing content.

                                                                                                                                      I actually think (La)TeX is the sweetspot here. It has markup, sure, but it’s much less intrusive when writing than tag-based markup. I.e. you write \emph{text} instead of <em>text</em>.

                                                                                                                                      According to Wikipedia, DocBook is still being supported by the OASIS group.

                                                                                                                                      1. 3

                                                                                                                                        The point of MD (and similar, like reStructured Text, Textile, Asciidoc etc) is to avoid the tagsoup of {SG,H,X}ML when actually writing content.

                                                                                                                                        Asciidoc is semantically equivalent to DocBook. It is a plaintext representation of DocBook without the tag soup. With Asciidoc driving a DocBook toolchain, you can have all of the output formats supported by DocBook for free. As someone who prefers reading documentation in info mode under emacs, I really appreciate that.

                                                                                                                                        I’ve advocated for it in a situation where markdown wasn’t capable enough, and I’d do so again.

                                                                                                                                        1. 1

                                                                                                                                          LaTeX is a nice nesting markup syntax, for sure. However, at its core, it’s still an imperative language—with pervasive use of global variables, to boot.

                                                                                                                                  2. 1

                                                                                                                                    True, but I’ve always had an issue with the fact that Markdown embeds HTML in a way that doesn’t nest. Once you’re inside a single HTML element, no more nice link and emphasis syntax for you. On top of that, this can also date an individual document to the trends in play when it was written, making it a poor document format in the long term.

                                                                                                                                    This connection also limits Markdown to a format that must be converted to HTML before anything else. But I guess that matches its most common use case, even if it also makes it significantly less than ideal for a document authoring format.

                                                                                                                                  3. 1

                                                                                                                                    Making a title is easier than bolding in md. You can’t fake a title with just style cause you can’t set font size etc.

                                                                                                                                  4. 1

                                                                                                                                    I just fired up Word (365, Windows 10).

                                                                                                                                    I could select a word, navigate to the “subtle emphasis” section, and apply it, all using the keyboard. When you hit ‘Alt’, a bunch of letter appear in the ribbon that allows you to access the different parts of the ribbon and select them.

                                                                                                                                    Is it as easy as “Cmd-I”? No, but it’s more discoverable than Emacs…

                                                                                                                                    1. 1

                                                                                                                                      That’s not a hotkey, it’ll never be faster than using the mouse.

                                                                                                                                    2. 1

                                                                                                                                      Why are you not supposed to bold text? Not everyone writes for the semantic web.

                                                                                                                                      1. 1

                                                                                                                                        Word came up with semantic styles way before the semantic web was established. It’s just a very good invention. Bolding a word to highlight it is fine, but way too often people use it for titles, and then it’s not just bolding but bigger size and different font too. This is not uncommon in offices. Decades of human labor have been lost to “oh I want all h2 headers one size smaller”, and mistakes are easy so it ends up ugly.

                                                                                                                                        1. 1

                                                                                                                                          Semantic headings are also important for accessibility. Using screen reader commands to jump to elements matching particular criteria, such as headings or even headings at a specific level, is the closest that a blind person can get to skimming.

                                                                                                                                          1. 1

                                                                                                                                            This is defeatist thinking about screen reader technology.

                                                                                                                                            A sighted person does not have semantic headings to help them skim. They just have text size and weight.

                                                                                                                                            Today, we have to provide screen readers with semantic hinting in order to enable skimming (and this helps the content creator, as well, through styling etc, so I’m not really arguing against it). But there’s no reason a BETTER screenreader can’t deduce these semantics from rendered font sizes.

                                                                                                                                            You can’t hope to fix a problem by expecting a billion content creators to do the right thing. We have to fix it by enabling tools to do the right thing with the wrong input.

                                                                                                                                            1. 2

                                                                                                                                              I get your point. In fact, my company provides a tool that tries to automatically make documents more accessible, using the best available heuristics for things like headings and tables, as well as OCR. For the many existing documents out there, especially PDF documents, this is the best we can do. And of course, there will continue to be new inaccessible documents as well. But heuristics are fundamentally unreliable, so we should encourage document authors to directly convey document structure, and make it as easy as possible for them to do so. We should take both approaches at once.

                                                                                                                                              1. 1

                                                                                                                                                Agreed.

                                                                                                                                  5. 6

                                                                                                                                    Reading this comment on a site where people regularly debate vi vs emacs made my day.

                                                                                                                                    1. 1

                                                                                                                                      I haven’t seen this for ages, and it’s the biggest tragedy of the impending vscode monoculture.

                                                                                                                                    2. 4

                                                                                                                                      It’s common for word processors and transcriptionists to use keyboard shortcuts.