Hacker news

  • Top
  • New
  • Past
  • Ask
  • Show
  • Jobs

Apple rejected my dictation app for using the accessibility API (https://www.mitmllc.com)

314 points by RZelaya 4 days ago | 166 comments | View on ycombinator

marvin-hansen 4 days ago |

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.

spiral90210 4 days ago |

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.

atroon 4 days ago |

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.

robgough 4 days ago |

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.

orliesaurus 4 days ago |

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

Muhammad523 4 days ago |

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.

dmcgill50 4 days ago |

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?

BrtByte 4 days ago |

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

chuckadams 4 days ago |

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.

hirako2000 4 days ago |

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.

claviska 4 days ago |

They rejected mine too for the exact same reason, despite press-to-talk being a legitimate accessibility issue.

I wrote about this here [1], and even called out some of the most common disabilities that clearly benefit from it.

They also don’t allow microphone access from keyboard extensions in iOS, which prevented me from shipping an iPhone target (that I really wanted for myself tbh).

It’s a shame and I can only assume they’re trying to protect their built-in dictation, which historically has been laughably bad.

[1] https://tonguetype.app/accessibility

hombre_fatal 4 days ago |

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.

PaulHoule 4 days ago |

Is it really true you get more distribution from the MacOS App Store? I would never use that App Store to install something unless I had absolutely no other choice —- and that would mean I would take somebody else’s app which was a little less polished or functional. We’ve had an App Store in Windows since Windows 8 and it has been a big joke, like maybe you use it to download some crapplet to use the scanner attached to your printer or something.

undefined 4 days ago |

undefined

DelightOne 4 days ago |

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.

jchigg2000 4 days ago |

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.

kobalsky 4 days ago |

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.

nullbio 4 days ago |

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

luca-ctx 4 days ago |

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.

stokedbits 4 days ago |

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.

burnt-resistor 4 days ago |

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.

-mlv 4 days ago |

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

throwaway-blaze 4 days ago |

"The choice is rarely "comply or quit." It is often "comply here, and do the fuller thing somewhere else."

Unless the platform is iOS, in which case it's "comply here or gtfo".

mvdtnz 4 days ago |

I do not respect software developers that build for platforms which require them to beg and plead to have their programs accepted by a mega corp. Develop for open platforms or stop complaining.

longnguyen 4 days ago |

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

artenesdev 4 days ago |

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.

shevy-java 4 days ago |

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.

Fokamul 4 days ago |

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

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

numron-dev 4 days ago |

I understand their point of view. I will launch an app on app mac too. I hope it do goes smoothly.

MoonWalk 4 days ago |

Can't view the site. Rejected with

net::ERR_CERT_AUTHORITY_INVALID

2OEH8eoCRo0 4 days ago |

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.

oblio 4 days ago |

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.

MagicMoonlight 4 days ago |

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

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

m-s-y 4 days ago |

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?

lofaszvanitt 4 days ago |

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

geor9e 4 days ago |

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

BoggleOhYeah 4 days ago |

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.

zhangyiqian 3 days ago |

[flagged]

3vo-ai 3 days ago |

[flagged]

BoxFour 4 days ago |

[dead]

saurav3000 3 days ago |

[flagged]

RZelaya 4 days ago |

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.

RZelaya 4 days ago |

[dead]

cumshitpiss 4 days ago |

[dead]