betterangels/better-angels

When using "Built-in WordPress Commenting System" for chat, screen flickers in and out on all devices

Closed this issue · 9 comments

Chat screen flickers in and out, likely due to the fact that the chat page refreshes every five seconds to fetch new messages. This occurs on all devices and makes viewing the user’s location on the map difficult, especially on smartphones.

Devices tested and reproduced on:
(Android version: 5.1.1, Google Chrome 47.0.2526.83)
(android version: 5.1.1, Samsung Galaxy 6 edge +, chrome 47.0.2526.83)
(Android version 6.0.1, Google Nexus 6P, Chrome 47.0.2526.83)
(Android 5.1.1, Chrome 47.0.2526.83)
(Samsung Galaxy Note 3, Android 4.4.2, Internet 1.5.28)
(Android 5.1.1 using Google Chrome 47.0.2526.83)

I assume you're talking about the "Built-in (WordPress Commenting System)" option. This is because that chat module works by refreshing the page.

Definitely a usability nuisance. :\

Note that admins can change the chat module for new alerts using the "Chat provider" option in the Buoy settings screen.

As an admin, I used Tlk.io as the chat system instead of wordpress comments, and it looks like the flashing screen is no longer an issue.

Yeah, the tlk.io integration doesn't exhibit the same usability issue, but I'll leave this open until the issue is resolved for the other chat back-ends, too.

This being said, I did a user demo/test at NMLA today and the majority of issues the testers ran into were problems with the tlk.io chat (e.g. messages getting dropped, things I don't think we have much control over) -- so I feel like it's important that we have our own homegrown chat module as an option. One thing I've noticed about the Wordpress commenting version is that all the messages posted seem to very reliably get through to all responders.

Maymay, I know you built the Wordpress commenting system chat so that it would work without JavaScript (am I remembering that correctly?), but would it also be possible to write a variant of our own chat to work on JavaScript enabled browsers that doesn't have the flickering? That might be a nice third option for our admins to have, in case tlk.io turns out to be less reliable than we'd like. Does this seem worth the effort?

Maymay, I know you built the Wordpress commenting system chat so that it would work without JavaScript (am I remembering that correctly?), but would it also be possible to write a variant of our own chat to work on JavaScript enabled browsers that doesn't have the flickering?

This was the intention from the beginning. The reason I write features without JavaScript first and then add JavaScript later is because doing it the other way around is like trying to remove salt from soup after you've put too much of it in. See also Progressive enhancement.

Makes sense!

Oh, also:

One thing I've noticed about the Wordpress commenting version is that all the messages posted seem to very reliably get through to all responders.

@unquietpirate, did you run into the issue described in #125 at all?

@meitar Posted a more complete comment on #125's thread. But, in short, no (but we didn't test it specifically.)

As of commit f21ed0d, the screen no longer "flickers" when using the built-in chat room. I'm not yet merging that into master because this functionality currently depends on the presence of the WordPress REST API version 2 plugin being installed and active. In other words, simply updating to this version without first installing that plugin will break Buoy if the Buoy is using the "Built-in WordPress Commenting System" as the chat room option, which is the default.

However, when the next feature release of WordPress (4.5) comes out, this plugin will no longer be required because the needed functionality will be a part of WordPress core. See the WP 4.5 project schedule as it appears today.

WordPress 4.5 is scheduled for release in mid-April, which is a little less than 3 months from now. Given how f&#@ing slowly everyone else is moving on Buoy, I think it's safe to assume that there's no reason for me to make any busywork trying to develop a user interface to warn about this incompatibility, since by the time this is at all relevant for anyone, it will probably be a non-issue. This comment on this issue is all the documentation I'm willing to do about it.