iPad with external keyboard connected can't see post when replying

It’s increasingly common, particularly among groups such as education, with students for note-taking and middle/senior managers (aka key decision makers). The CTO who reverted to email after having problems posting from tablet/keyboard ultimately opted not to take that particular pilot into full service, deeming Discourse as not fully mobile-ready.

Personally I’ve been using a tablet with keyboard for about 4 years now. Because of this issue Discourse is one of the few things I don’t use it for.

2 Likes

You’d think proper hardware keyboard support in mobile safari would be a priority for Apple then; it’s a shame that doesn’t seem to be the case.

Especially since tablets are deader than a doornail on the Android side. :skull_and_crossbones:

When they take such a big cut of the app economy there’s almost no reason to do something which makes it easier for PWAs to function.

I feel like anyone truly committed to tablet+keyboard is using a laptop. Everyone else are basically … dilettantes. It’s just hard to take them seriously.

That said I’d indeed love to see better Mobile Safari support for detecting hardware keyboard, as in ANY SUPPORT WHATSOEVER.

The theme component @sam proposed is not a bad idea, either, given the rarity of the use case.

While I was just praising the support of the Discourse team, if you’re going to insult your engaged, serious customers to their face then I can’t really stand behind that anymore, can I? Seriously, this is incredibly unnecessary.

On the topic itself though: I was at the SaaStr conference in San Jose the other week, with thousands of founders/leaders of tech companies. My rough estimation was that ~20% were using iPad Pro with an external keyboard. Even if someone’s not as exclusively “committed” as I am to it, there are moments you really want to post longer things on the iPad. Like in this case, during downtime of conferences where you’ve had 200 new great ideas that you want to share with your team. Or when traveling, coffee shops, etc.

Again, I realize this doesn’t represent your typical user persona but I suspect it represents your buyer persona so it’s an interesting trend to take a look at.

Anyway, I feel a little disheartened and feel like I’ve now given you my full take here, so I’ll leave it here.

Best,
Jon

1 Like

That’s the problem with telling the truth: you may offend people.

Truth is, this is a really niche and narrow use case — iPad with physical keyboard. The whole point of the iPad is that you only need the screen and the keyboard appears on demand. Giving that functionality up, and mating the iPad with a permanent keyboard … honestly you are much better off with a laptop.

As I said I am definitely interested in fixing this, but sadly Apple has been spectacularly unresponsive, and only they can truly fix this problem, by exposing the presence or absence of a physical keyboard to Mobile Safari.

My suggestion is to avoid Discourse (or any other web based app for that matter) and use only native apps exclusively if the keyboard + iPad is going to be a large part of your audience.

The other option is a theme component.

(Oh and to be clear I love my IPad Pro 12.9” and I use it literally every day with Discourse.)

1 Like

Also I am not totally clear what isn’t working here? Full screen editor mode seems to work ok on my iPad Pro 12.9”

It is still mega awkward because iOS has no concept of tabbing to controls and ctrl+enter to submit a reply does not work at all. But most of the keyboard shortcuts seem to work fine.

1 Like

It’s hijacking the entire screen, obscuring the topic. You can’t compose and read, which makes responding much slower.

If discourse can’t tell that the on screen keyboard is visible it can’t swap between topic+reply and reply only modes.

I just re-tested. There is no sane way of detecting hardware keyboard on iPad. Ziltch.

Theme component that allows user to disable our hacks is the only sane solution I can think of.

In fact @codinghorror if we play a bit of an early adopter here how would you feel about:

  • IF you are using an iPad/iPhone
  • AND you visit /username/preferences/interface
  • Have a checkbox for [ ] I am using a physical keyboard

Technically this should be called

[ ] Do not apply iOS specific hacks to the composer cause Apple can not get positioning fixed to work correctly

It is a safe way of disabling all the hacks, and technically we need none of these hacks in Android and the long game is that if Apple gets its act together we will not need it on Apple devices.

Long term I do see more people on iPad + Keyboard and skipping the whole laptop thing. But yeah it is quite rare at the moment.

4 Likes

This is a nice writeup about the problem, though I have no way of reproing that window.innerHeight works properly. Seems totally bust to me even if I set this interval. (It kind of starts working sometimes, but I can not figure out any consistency here)

  setInterval(() => {
    let h = window.innerHeight;
    window.alert(h + "");
  }, 10000);

4 Likes

If you can hack it up in a theme component we could try it here.

2 Likes

How is Medium’s editor doing it? The screenshots from @littke make it look like they have a working solution?

It looks like it’s just slid up and out of the viewport as per:

3 Likes

Medium only shows one thing, the rich editor. It doesn’t have to divide the screen between page and editor.

2 Likes

OK we now have this component:

Combined with @Osama’s patch that now means the divider is resizable on touch, the experience on iPad + keyboard is spectacular imo.

Biggest problem I see left is that I can not hit TAB + ENTER from the iPad to submit a post, that is very annoying for my daily catchup.

But J/K work and with the smooth scroll @dan added it is also spectacularly excellent.

This post was made on my iPad, using a physical keyboard.

Proof here:

@codinghorror I do think this setting belongs in core though, cause it only shows up on iOS and ONLY removes hacks, so it also allows us to quickly test if a new iOS is less broken (though I am not holding my breath here)

8 Likes

Nice work, maybe @littke could test it out and confirm? (be sure to test it here on meta, cause we have all the features deployed and enabled)

Could the new component be causing this:

Editor bounces around the screen as I scroll.

No repro of any bouncing (iPad or desktop), the component is 100% a no-op unless you turn on “Enable hardware keyboard support”

Video is not working, what system is this on?

Iphone X running current build of release iOS12 and the Discourse app.

No no this is tablet only. It will be Bad Times™ on phones.

I mean I guess people can hook keyboards up to iPhones?

1 Like