logoalt Hacker News

Apple rejected my dictation app for using the accessibility API

232 pointsby RZelayatoday at 12:00 PM138 commentsview on HN

Comments

marvin-hansentoday at 3:06 PM

I actually had the almost same situation by building an offline voice dictation app for macOS and iOS, and in macOS I was confronted with the exact same situation.

However, I would like to point out that Apple isn't totally wrong here because the accessibility API unfortunately is way too broadly scoped, and because of that you literally get access to everything on the computer like you you can screenshot listen and and move the cursor... This is completely ridiculous and the proper engineering solution would actually be to phase out the accessibility API and replace it with something that is narrowly scoped so you can grant specific permissions individually.

However, Apple, being Apple, is obviously not doing anything, and instead says no accessibility permission for anything that isn't demonstrable accessible. Now, there are obviously some exceptions because Apple is not particularly well known for applying its rule consistently and granting big exceptions for itself. However, they do have a valid point on privacy and data protection. And I say that as somebody who ended up distributing my MacOS app outside the App Store because I only got approval for iOS.

That said, I would definitely appreciate if Apple would gradually improve its developer program experience, because compared to its hardware lineup, the developer program is nothing short of abysmal.

show 6 replies
spiral90210today at 12:41 PM

SpaceGremlin (mac alternative to WinDirStat) has a similar thing, where some features only work in the independent "SpaceGremlinPro" version downloaded from their site. However, they do some cool stuff with licensing - you can point it to the app store paid/installed version, and it detects the license and unlocks.

If you're worried about people not trusting payment to you, might be worth seeing if you could implement this, so anyone who bought on the app store can still access the full feature set. Cuts you out 30% like, but better than nothing maybe.

show 7 replies
atroontoday at 2:52 PM

I don't mean to offend, but entrusting every input to a company literally called MITM LLC has a level of absurdity that either greatly entertains or else greatly frightens me.

show 1 reply
robgoughtoday at 12:59 PM

I recently built a similar app, and so hit the same limitations – I wasn't too upset on Mac, happy to distribute without the App Store (though it's a shame).

Where I was more frustrated was how much this limited the potential usability of the iPhone app. Because of app store restrictions it is a far worse app ... though like in your example, still useful to a degree.

I can only hope they use the new CEO as an opportunity to seriously re-evaluate their entire approach to how they work with developers, though I'm not actually expecting them to. If anything, with the increase in apps being created via AI tools I worry they will go the other way.

show 5 replies
orliesaurustoday at 1:13 PM

As someone who also experience pains in their hands after a couple of hours of typing... I started to use the great open source app called ghost-pepper [1] that i found on github and has been my daily driver (its like superwhisrp but oss/free and local) the maintainer is really nice and replies to DMs really quickly too.

[1] https://github.com/matthartman/ghost-pepper

show 2 replies
Muhammad523today at 12:33 PM

This is what happens when you run an OS controlled by some random big corporation. I dont mean that it's the person's fault, but just that you should not rely on Apple. they allow you to use your computer, but on their terms.

Install some GNU/Linux distro and you can do whatever you want.

show 8 replies
dmcgill50today at 12:51 PM

In Apple’s defense, your company name is MITM. Man In The Middle certainly falls on one side of the perception line, don’t you think?

show 3 replies
chuckadamstoday at 2:46 PM

There's a reason I don't write mobile apps, and it's all the flaming hoops you have to jump through: both in the build system and from the random whims of reviewers.

show 1 reply
BrtBytetoday at 2:03 PM

The frustrating part is less that Apple has a boundary here, and more that the boundary seems opaque and inconsistently enforced

kobalskytoday at 3:26 PM

After decades of heavily using the computer keyboard (every day, all day) I started getting pain in my wrists.

I got an ortholinear keyboard that looks like a rectangular grid, just 12 by 4 keys around 10-15 years ago.

I don't recall the last time I felt pain in my hands, completely gone.

hirako2000today at 1:08 PM

Some non apple apps get access to accessibility APIs. What gives?

This API is sensitive. I imagine Apple is particularly stringent as to how the access is justified. Not how it uses it but how the reason for using it is explained.

It's not like someone tests the app and all api calls to deem them reasonable or not.

show 1 reply
hombre_fataltoday at 1:07 PM

What API are you using? I have a sandboxed app on the Mac Store that synthesizes CGEvents to simulate arbitrary keyboard actions on behalf of the user. It needs accessibility permission, of course.

show 2 replies
luca-ctxtoday at 3:11 PM

I’ve had lots of inconsistent app reviews from Apple. Just appeal and/or re-word your language and you’ll be ok. Plan on it taking a few weeks to fully sort out.

stokedbitstoday at 3:26 PM

This is well documented by them which is why a majority of the apps doing this are released outside of the App Store. I built something similar, and I just publish it separately https://github.com/moxiebytescode/speakeasy.

longnguyentoday at 4:14 PM

If you emulate command+V, make sure to check the keyboard layout. You may need to translate the keycode V for the current keyboard layout like DVORAK etc

show 1 reply
jchigg2000today at 1:10 PM

Quick question, I assume you're getting caught by the CGEvent(PostEvent)...but I want to be sure. AX API has been gimped for over a decade so you'd have never made it into the app store that way. Just making certain, in case you have another path. It doesn't appear CGEvent is a universal approval anymore either though.

Have fought similar demons lately, feel your pain.

show 1 reply
nullbiotoday at 2:12 PM

Doesn't Wispr Flow do this though? How did they get past these limitations?

show 2 replies
DelightOnetoday at 12:36 PM

I don't want random apps to paste potentially dangerous things into other apps. Its understandable.

Imagine a banking app, and for example an IBAN field.

show 5 replies
-mlvtoday at 12:34 PM

No surprises here, Google has also been restricting access to its accessibility API.

show 1 reply
artenesdevtoday at 1:09 PM

Oof, thats rough. I'll still start facing those issues, just got accepted into the apple's dev program. I predict a ton of rejections coming my way.

show 1 reply
m-s-ytoday at 1:33 PM

macOS already has a dictation feature that does this exact thing, albeit in real time. I use it extensively.

OP’s description in the linked article doesn’t say much more than this, so what am I missing with this particular app?

show 3 replies
geor9etoday at 2:06 PM

Is this just an stealthy ad for another paid dictation app…

burnt-resistortoday at 1:39 PM

Accessibility things should be more useful than to just narrow accessibility uses only. Wheelchair ramps help move heavy objects. The accessibility API makes it possible to introspect all of the keyboard shortcuts an app provides for another app to list them.

Screw Apple and their persnickety, controlling myopia.

Fokamultoday at 1:05 PM

Easy, don't make apps for devices which are only leased to people.

Make apps for device, which are 100% owned by people.

shevy-javatoday at 1:21 PM

This is another reason why one shouldn't become dependent on those giant companies. Just as Microsoft recently stated, you'll have to pay for GitHub CoPilot soon on a token basis. Apple controls access to its software ecosystem too.

BoggleOhYeahtoday at 12:57 PM

Eh. I think it’s fair if Apple doesn’t want to publish something on their app store.

I just wish they weren’t so obstinate about people installing from other sources without signing/notarization. I understand it from a security standpoint but it’s also nakedly self-serving.

I’m glad that they’re fine with signing in this case.

show 1 reply
MagicMoonlighttoday at 1:56 PM

A company called “MITM LLC” which hijacks pastes in other apps.

I have no idea what they’re thinking. Insanity.

2OEH8eoCRo0today at 1:12 PM

Add it to the antitrust pile.

Microsoft was almost broken up over not allowing third party programs to use certain APIs. Apple abuses their dominant position to suppress competition.

lofaszvanitttoday at 1:38 PM

Time to turn Linux into a platform where you can upload into a store whatever the fuck you want. And see these behemots burn.

obliotoday at 12:26 PM

I guess this app can still be installed locally? It's just that it can't be distributed to others due to signing requirements?

Edit: Ah, it's in the article, this is about AppStore distribution. Walled gardens are going to walled garden.

show 1 reply
BoxFourtoday at 12:44 PM

[dead]

RZelayatoday at 12:38 PM

I am still not certain I understand exactly what Apple's reviewer meant by 2.4.5 in my case. My working assumption is that the concern is about an app reaching into every other app on the system to inject text, but I never got a perfectly clear explanation. (Or maybe I'm too dense to understand it.)

If anyone here has more direct experience with this guideline, especially from the App Store review side, I would like to hear it. I would rather understand the policy than just guess at it.

RZelayatoday at 12:55 PM

[dead]

cumshitpisstoday at 12:37 PM

[dead]