Hello Applevis,
I am looking for latest up to date accessibility info for, if possible, the most accessible text editor for coding on mac aside xcode which is a glorified and overkilled ide for simple python executed via terminal (at least in my opinion).
I've heard about TextMate and decided to give it a try. At the beginning it seemed very promissing and I really liked how it was so close to what I am used on windows with notepad++, very lightweight and accessible.
However indentations are so buggy with voiceover that I can hardly see myself even trying using in a professional environment. Why? With either vo reading at the right of the cursor or what the cursor passes, there is one huge bug that makes it very hard to code or re read code, especially in python where indentations are used to seperate blocks of code (whatever the real name for this shit is, you understand).
First, and this is not a bug but a feature, on keyboard, each indentation level whatever the size we give to it is treated as one character. Which mean if my level is 4 spaces, and I am in a loop in a condition in a function, three spaces will be announced by voiceover wich each of them being 4 spaces. I don't mind at all this way of treating indents. However the bug is that when there is a blank line with only the indents, when doing right arrow from the begining of the line voiceover will announce the last portion of the previous line instead of just space as if this was written on the current line I am editing, and similarely when doing left arrow from the end of the line, after the indent vo reads the ending of the line below. For coding, and especially in python, this nothing but a disaster and incredibly invalidating as a blind user to do something as simple as write or read code, made worst by python's own syntax. I don't know how to explain this bug better but don't hesitate to ask still for clarifications, but I urgently need any piece of advice you may have to help me either solve this bug in textmate which is still a great editor but for this really annoying bug, or suggest me another software to read and write code that is not textedit.
Please note that this has nothing to do with any indentation reporting setting in voiceover utility. If I am very unlucky this is another bug introduced with sonoma or ventura. Textmate seems frozen in term of update as the latest version was released in 2022 or so, although I don't think it's an abandonware, yet.
I am looking for an lightweight text editor if possible, not an ide. And as I mention I'd tend to think that xcode is overkilled for what I currently do, python, js and html. On windows at least I never needed any ide for python, and I tend to do everything via terminal whenever possible and avoid ide altogether. If pycharm is more accessible I might give it a try if you can convince me. But I need a general purpose text editor not tied to any language or environment.
Thanks a lot!
By TheBlindGuy07, 12 May, 2024
Forum
App Development and Programming
Comments
VS Code (or perhaps Emacs)
Most blind coders these days seem to be using VS Code.
If you want to invest a lot of time in learning an editor you can use for a long time and that is platform-agnostic, you might look into Emacspeak. Getting started is an upward climb, though.
Yeah but
VSCode is not bad at all. But Sonoma completly screwed monaco editor on mac with voiceover, both on safari and chrome, which is the editor used invscode among other websites/softwares as far as I know. Just try vscode.dev and write a simple comment, when navigating by arrow keys vo will I announce the full word instead of the letters, I've already posted a thread on this. Like if the electron wrapper for mac works with vo then why not but the navigation itself with duplicate element duplicated twice because of how voiceover handles web in chromium views didn't seem promissing when I ried it on ventura when I was still new to mac and hopeful. At least the terminal within vscode was not very useful.
As for emax, how good is it really? I've heard many blind linux nird apparently using emax within macos terminal without any vm of something like that, needless to say I am curious. Is it good for dev?
Thanks though for an incredibly quick answer :)
I've used VS Code
I've used VS code to write lots of python programs for my Information Technology degree. It is accessible.
Thank you all
I will then retry vscode on mac. Hopefully it can actually make my expensive purchase actually worth it!
I am also welcome to hear any information on how to install emax/emaxspeak on mac and be functional there as a blind user, feel free.
Emacspeak
There's a new speech server for Mac now included in Emacspeak (available via its repository on GitHub). I haven't tried it yet; I run Emacspeak on Linux, not MacOS. I could install it on MacOS, of course.
Thanks for all your suggestions
I'll stick to VSCode for now.
I had a very hard time finding this and then finding this again so I'll post a link here for emaxspeak. I haven't performed any of the steps described yet but it seems to be the most up to date guide on emax/emaxspeak on mac. You are welcome to add more details to it as needed.
https://gist.github.com/devinprater/a794a448ccc46e72fca63c932105c043
Thanks again!
VS Code
I've never quite managed to get on with VS Code. I like how every time they post the release notes, accessibility seems to be top of the pile so it's obviously important to them. But even so I've always felt it a bit rough around the edges. I've always blamed it on Electron or whatever it is called, which I think means it's effectively using Chrome as the UI isn't it? And anything web on the Mac tends to lead to frustration.
I know you have said you would prefer a code editor over a full-blown IDE, but I just can't find anything that works better than PyCharm. For big projects, being able to quickly mark folders as being Source or Test Source and have it added to python path is so handy. Having different run configurations is great. For large projects I can just select which set of unit tests to run, for example, and it speaks out the number of passes and failures. Then I can jump to the results, find the missing one, hop over to see why it failed and repeat. It fits my workflow very well, even if the Mac does its best to annoy me at every turn, which I presume you will get no matter how you are editing text on it.
PyCharm is definitely not perfect - some things like the terminal are not accessible at all, and I've never quite figured out things like data entry or navigating karma tests properly. But on the whole it is a nice experience. And they do seem to respond on the forums and seem genuinely like they want to improve things.
If you are just knocking up a quick isolated Python script I can see how it might be overkill, but for a complex project I've not found anything that can come close.
It's a shame that they never bothered to make their new editor, Fleet, accessible. That felt like it might give VS Code a run for its money. They have promised screen reader support but you can't even get past the terms and conditions screen so it's a total non-starter. I keep meaning to try to kick off some more about it but I've never quite found the energy.
Thanks @mr grieves
I've heard of pycharm. The last time I tried it on windows 3-4 years ago it wasn't very accessible or I didn't understand how to use it. And as I have probably already said, maybe it's my windows background where terminal is not a pain to use but a real tool as it should be but I generally tend to avoid ides in favor of lightweight text editors like notepad++ on windows and use terminal to compile. Again I am not a professional dev yet and I never had the need of something more.
I will definitely take your suggestion and try pycharm if I ever feel the need of an ide though, for the moment as much as I dislike the idea vscode seems the way to go on the mac for coding. At least voiceover doesn't become eratic with indentation like it does with textmate.
What issues do you find in Visual Studio Code?
In terms of accessibility and availability of useful features, I haven't found a better editor for coding in macOS than Visual Studio Code.
For those not satisfied with VS Code on Mac, what do you actually find problematic while using it?
Thanks to its handy features for quick cursor navigation and text manipulation, VS Code even replaced TextEdit as my default TXT editor.
Re Problems with VS Code
I don't know if any of my issues are still there - the only big one that comes to mind is selecting text which was terrible but is now better. I had a few other little things - like it keeps doing some weird instrumental flourish if you have audible indentation turned on in VoiceOver. I can't really remember the other issues - most aren't that bad but it's just always had a slightly scruffy feel to it.
I think I find that it takes a long time to get proficient with a new way of working. I've been using Jetbrains IDEs for about 10 years, and before that I was using Visual Studio with Resharper. So I know where everything is and it just works for me.
With Visual Studio Code, I am sure I can be productive but it's always taken more effort than I am prepared to invest to get anywhere. For example it seems quite fiddly to set up the python path properly. If I have a project with lots of serverless functions, each with their own unit tests and whatnot, then it just seems quite difficult to get the tests up and running in a sensible way. I don't want to run them all at once.
I never quite managed to get the Javascript unit test runner to work, although I've not tried for years.
But I know lots of PyCharm shortcuts - I can hop around quite comfortably. I mostly understand how the cursor is going to work, although I still end up fighting with the indentation and punctuation.
Every time I've tried to switch to vs code I've just got hung up on something I can't quite do and then I get fed up and go back to trying to be productive.
I think because VS Code is a code editor rather than full IDE, it just expects you to put in a bit more effort to get things up and running. Since I started using VO for the Mac, I have stopped getting any enjoyment out of using the computer, so I just don't really feel inclined to fight with something new which is unlikely to be better than what I am already using.
But if VS Code is working for you then there's probably no particular reason why you should switch. I would need some convincing that it is going to be that good for managing a project with lots of little bits to it however. Or maybe I am just too used to the creature comforts of a full-blown IDE.
Text editor for HTML
Sorry to revise a dormant thread, but I thought it best to keep related discussion in the same place.
I'm putting together a Wordpress site and getting about 80% of the way there with the block editor. But then I need to switch to the HTML editor and do some global search and replace. Well, I'd rather stick a fork in my blind eyeballs than do that in Wordpress. Instead, I select all, copy, and paste into a plain text TextEdit window, do my editing there, then copy and paste back into the Wordpress HTML editor. It works great, except for one thing.
The TextEdit interface for global search and replace is only borderline accessible, and I feel really uncomfortable when using it. Unlabeled text fields, for one. For another, it's possible to navigate right out of the find dialog and back into other elements of the editor. I'm just never 100% certain that I'm making the correct edits. I've found a workflow that seems to let me do what I need, and I'll complete my current website development with this approach.
But I'd love a suggestion for a plain text editor that has a powerful search and replace capability that's accessible and straightforward. Thanks.
HTML Text Editors
When you say global search and replace, you are still talking about just in a single file?
I personally tend to do most of this sort of thing in PyCharm, and there is also a version of the same IDE that's more geared towards Javascript called WebStorm, but they both have decent search and replace and have free versions. I suspect they are overkill for you.
I would probably give BBEdit a try. It seems to have quite powerful search/replace functionality and seems to work well with VoiceOver. It's a bit more lightweight an the other two. There is a free and a paid version. Not sure if the paid version makes a difference to this feature.
Another option is TextMate which looks to have decent search/replace and also works well with VoiceOver, and is free.
And then there's always Visual Studio Code which will no doubt do what you want.
I find that text editors are quite a personal thing so you might have to try a couple to see which one clicks.
I'm sure someone else on here may have better advice for the specific task you have in mind but just thought I'd throw this in to get things started.
It's my thread! :) Mr…
It's my thread! :)
Mr grieves many many thanks for recommending pycharm, this thing is soooo nice to use and I have never felt that level of productivity before outside Windows. Like... I don't care (or need for the moment) any real ide, I just use the editor, turn off as much as possible everything else and use the native terminal for the rest, but the text editing experience hasn't been that good before pycharm for me when it comes to coding. I will gift you a virtual environment 😂
Text Wrangler
Many moons ago, I used an app on my MacBook Pro called "Text Wrangler". I believe this is now called "BBEdit".
I would have compared Text Wrangler to Notepad++ for Windows, as it did things like line numbering. With that, you could also jump to a specific line number, which was really helpful if you had 1000 lines of code that you had to proofread. 😣
Textmate first impressions
Seems like this will work. I just tried it with one of my favorite test cases, finding all instances of whitespace followed by newline, and replacing that with newline. It was easy, simple, and intuitive. Way better than TextEdit.
Re: TextMate
Glad it seems to be working for you. My favourite thing about TextMate is being able to use it in terminal. So I can add "| mate" to any command and it will pipe its results into text mate. (You have to enable terminal integration in options first). I find that incredibly useful. I think BBEdit has something similar but I've not got it to work yet.
And it makes me very happy to hear there's another PyCharm convert. I always feel pressurised to use VS Code because everyone says it is better. I am sure it has the best accessibility options but it is nowhere near as good as PyCharm for Python in my opinion. At least on the Mac anyway.
Piping BBEdit
I believe you can do this with "bbedit", or "| bbedit".
Very cool
Looks like I can set it up to use ssh as well, so I can edit files remotely. I'll have to dig into this. But first, I must finish this HTML project, hopefully today.
Re: piping in bbedit
OK that is embarrassingly obvious. I'm sure in the docs it was telling me to use something else to do it, and I never tried that. (Face palm)
Anyway, thank you - that does indeed work.
text editor for coding
umm.. vim, been using it for decades. though yes, u do have the problem that voiceover can still be uggyin the terminal.
Don't mention vim I still…
Don't mention vim I still get angree at apple each time :) I of course reported everything...
Color me happy
I just used TextMate to do some heavy duty search and replace on rather lengthy HTML. It worked like a champ, much less agonizing than TextEdit. I'm a convert.
It's kind of sad, that Text…
It's kind of sad, that Text Edit; arguably the Notepad equivalent on macOS, is having so much trouble with basic text editing. Let along with more in-depth tasks like writing code.
TextMate
This is mostly a reply to the original post, as I use TextMate for everything that does not target the Apple ecosystem and know exactly what they're talking about, but missed this thread when it was originally posted.
Although the issues that you describe are quite specific to TextMate, I do believe that they are mostly VoiceOver issues resulting from bad screen-reader heuristics misinterpreting caret movement locked to tab stops. These issues in particular do not bother me personally even when writing Python code, because I use the Command+LeftBracket and Command+RightBracket on a US keyboard to do outdent and indent respectively so I rarely need to move the caret to the white space on the left side, however there's a VoiceOver issue introduced in Sequoia that has been driving me nuts, which are frequent crashes related to my choice of using tones to express indentation levels. Sometimes VoiceOver crashes so many times in a row that the system begins to penalize it by preventing it from restarting for increasingly longer periods of time, and if I keep making it crash, these penalties eventually end up locking me out of my own computer without a screen-reader for minutes.
As to why TextEdit, and most text fields on macOS feel so crappy to use with a screen-reader, this is due to a bug in how the
NSTextView
provides accessibility information about its text contents. What is happening is thatNSTextView
only sends the current line as its text content to the accessibility infrastructure, so services providing accessibility on macOS are led to believe that the whole document only contains that single line of text. SinceNSTextView
also happens to provide a fully customizable rich text editing environment, many applications rely on it for text rendering, with TextEdit in particular being literally nothing more thanNSTextView
s wrapped in windows. This bug has been around since at least 2014, and might have been around for longer, but I wasn't using a screen-reader before then.One of the things that makes Apple stand out is their attention to detail, but strangely they don't seem to apply the same quality standards to accessibility especially on macOS, as evidenced by the overwhelming amount of low hanging fruit that they do not bother collecting for years and in this case actually for over a decade. I will keep consuming Apple products since Accessibility is not my only concern, however I've never been able to recommend macOS to fellow blind people in good faith, and honestly think that providing accessibility on this system is just a politically correct checkbox that they feel the need to tick but without serious commitment.
Best to use Mac applications for text editing
I've had cursor tracking problems (especially using a Braille display) with Visual Studio Code. However, it's an Electron application. If you're using speech only, it may be usable - I haven't experimented with that combination enough to be sure.
I've found editing text with "native" macOS applications to be reliable with VoiceOver. So TextEdit, TextMate and Cot Editor are all options. I've used Vim in a terminal quite successfully, but I sometimes have to move the VoiceOver cursor to match the keyboard cursor (e.g., VO-Shift-F4).
Emacs with Emacspeak is also a good option. I've used it extensively under Linux, but there were Python errors when I last tried to compile the macOS speech server for Emacspeak. It depended on an obsolete Python module that is no longer available in recent versions of Python. I don't know whether this compilation error has since been fixed.
@João Santos
Are you talking about this bug I experience in textmate, coteditor, vbedit and even pycharm where with indents pressing cmd left arrow repeatedly makes VO announce the previous line (or last word of that line)?
Aah we always end up talking about macos accessibility. I am so happy that this NSTextView bug in iWork only you understood and told me by pm being the reason why you attempted vosh was fixed in the original beta of sequoia. That version has been the reason of me keeping my mac, overall they cleaned a lot of their mess and unlike sonoma most voiceover new features actually work and are useful, with the exception of the over-engineered iphone mirroring where they could and should have gone the airplay and keyboard event sending route but... I have 0 year of experience to tell them this.
Anyways I've gotten used to this bug mentioned above and am quite comfortable typing on the mac, and I was already loving the cursor behaviour on iphone. Just thinking about all the thought process we have to go through each day when there is a crash make me sad about macos state of accessibility hence my hot take that if you are not a dev or technically able please double check before entering the mac realm.
@jw glad to hear that vim can work for you, what's your specs? On my m2pro base model I tried everything but it's unusable in its current state and the terminal is just usable enough but I always have to read output myself because voiceover cursor had adhd... Emacs is incredibly complicated to run with accessibility on mac, swiftmac does work for me but I am not able to run emacspeak properly and I'll follow up myself on the mailing list.
Another free tip for text, don't rely with vo text commands on the web in textfield you won't like the results. This thing is the most fragile piece of software I've ever dealt with.