Resilio-Sync-Without-A-Screen-Reader
Introduction
After switching to Resilio Sync from the older Bit Torrent Sync, screen reader users are sometimes having difficulties making the switch and continue running the old version. BT Sync does still work even when connected to instances of Resilio Sync, but it does have some issues that can cause lots of extra internet traffic in some somewhat obscure situations. Still, for basic use, BT Sync is probably good enough. Resilio Sync is very stable however, and has gotten about as close to set it and forget it that any file collaboration platform I've any experience with has managed to do.
If you sync multiple folders, have people sharing with you who have Resilio Sync instead, want extra features like selective sync and account id's that come as part of the paid account, then you're looking at Resilio Sync as the old BT Sync can't do much of that. It's more efficient on resources and internet traffic, faster to move content and has more features. The downside is that Resilio's interface does not work with a screen reader. Not to dispare just yet, Resilio has a solution to the problem. The Web UI works fairly well with screen readers. Even the normal installation of Resilio is actually capable of being managed via the Web UI, but we'll focus on installing Resilio as a service, whereapon the only method to configure it is the web UI.
Download
Downloading Resilio isn't the simplest. Resilio has grown and is now sporting a variety of options catering to companies needing to keep data managed among many employees in a scalable fassion, but they haven't forgot about the normal end users quite yet. At the time of writing you can get it from https://www.resilio.com/individuals/
I went there and at this time the price is $59 one-time for a pro license, going up from there for family and onto a subscription plan for around $35 monthly. However Resilio is perfectly usable for huge amounts of data with the free version. I found a link on the above page to download Sync Home. That immediately downloaded it with no extra fuss. I note that Resiliio rarely updates, just a couple of times in the last 3 or 4 years. When it does have an update, by default the web UI will mention it at the top of the page. By the way, while Resilio is fairly cross platform, I'm focusing on Windows.
Installing
Installing Resilio is not too complicated although eventually setting it up is most of the reason writing this article has merit. Run the downloaded .exe file. It'll have a load of checkboxes. We can choose whether it starts with Windows, adds firewall exception to Windows firewall, etc. The important one I always change (the only one I change) is the "install sync as a service" option. Enabling this will do what it sounds like, install it as a non-interactive background service. Accessing it will be done via a web interface. Those of you familiar with Sync Thing might feel familiar with this idea. Ditto Own Cloud. So we checked this install as service option and continue on. During the install we get a prompt for a username and password. This is configuring how the service is logged in, as in which account is it ran under. You technically can put your account's username and password here, and you should do that if you have multiple accounts on the computer, and you want separate Resilio installs for them. I have not actually tried this so can't tell if it actually works. For me, I always install as system, just type system as the username and leave the password blank. This is going to allow Resilio to run even if nobody is actually logged into the computer. It'll start at boot before you log into a user account for the first time. Once we hit ok here it should finish the install and open a web browser since we have installed it as a service and thus a web browser is required in order to actually set it up.
Setting up is a bit messy to be honest, but it's not impossible to do from a screen reader user's point of view. You first land on a username and password prompt. As a webpage, you should be able to arrow up and down and examine the forms but tabbing and shift+tabbing works here if that doesn't or you prefer it. This user and password pair is for the web admin. You can require a username and password pair to be entered into the browser before you'd be able to view the UI. If you do this, you'll be prompted in a dialogue box for that info when you attempt to navigate to the Resilio UI. Autofilling passwords does work in some browsers and generally will just fill out the fields when you get the prompt but you still have to ok it. By default, Resilio is bound to internal localhost only, meaning other machines, even on the same network, should not be able to access the UI even if the port isn't firewalled out for it. That being the case, if you aren't too concerned about keeping the UI secure to people able to access the computer, or you can bypass login prompt altogether for most browsers by specifying "admin" as the username and leaving the passwords empty. I'm not sure why this is a bad thing as the normal installed version of Resilio would certainly let you view the interface with a simple click on the desktop icon or the tray item. However, if you would rather be able to access the UI from other machines, then I do think a password is critical. You can change it later in settings easily if needed. Once we have the web login pair typed in there should be an ok button of some sort.
Creating sync identity
Next we are prompted for the name of the sync identity. However this prompt is the biggest hiccup as the whole page generally won't render at all with any screen reader's virtual cursor or similar in nearly any browser. The solution is to turn it off by using insert+space or caps lock+space (NVDA, insert+z or caps lock+z (JAWS). It may also work to focus the edit field and then attempt to tab from it. We do need to tab here as there are two checkboxes as per the license agreement and a declaration that you're using this sync home edition for home use. Tab and listen carefully as the checkboxes have a lot to say before your screen reader might inform you that it's a checkbox. The first one is just two presses of tab from the edit box and the other one is 6 or so from it. They both have to be checked. Then shift+tab back to the edit box and give a desired id name. This is not able to be changed but it's also not used particularly often in a user visible way. Just put something short and call it a day. By default it probably will suggest the name under with the service has been installed, which if you follow my suggestions is "system". Once you're done tab once from the edit box and choose the continue button or equivilent. This button cannot be focused unless you successfully checked both of the check boxes.
Last step! newsletter
Next, you can use the virtual cursor again, so insert+space or caps lock+space with NVDA to turn browse mode back on (if not already done automatically) or insert+z or caps lock+z to turn virtual pc cursor back on in JUAWS if not already done automatically. Arrowing up and down in here we do have an email prompt for a newsletter. You can spoof it with something that's meaningless if you want to. I always put my actual address in and it never actually has sent me anything and I've been using it for many years. From what I can tell, you have to do this in order to use it unfortunately.
general screen layout
Once you've done that, you land on the folders page generally. If not, there's a folders button near the top of the page that will put it into this view.
Folders View
Folders displays all the sync folders Resilio is managing. As we arrow down from the top, we eventually get to an interesting section that says something like all, connected, disconnected. These are actually items you can press space on and they control whether the soon to be discussed table shows all folders, only connected ones or only disconnected ones. By default it shows all. This is more useful if you have Sync Pro and have anywhere near as many disconnected folders as I do that don't mean anything the majority of the time and just make it harder to navigate among the actual working connected ones. It's probably super obvious now, but I would hit the connected option and thereby filter out all the dozens of disconnected folders from the table.
Columns Table
It actually weirdly uses two tables to do this. The first table just has one row and is the headers for the columns actually displayed in the second table. Name, status, peers online, etc. You can customize these some. The most obvious thing is to press the space bar on one to sort the folders by that column, and doing so again will invert the sorting. You can emulate a click on a column to get a load of checkboxes at the bottom of the page whereby you can choose which columns to display, including many that are not already on by default. If you have the check boxes up, you can be rid of them by reloading the page, usually pressing f5 will do the trick.
Folders Table
Below this columns table is another table. It displays every folder that you have added. Depending whether this is a paid account, this can mean different things. For paid users, once you have added folders, any instance of Resilio will show all folders associated with that account or id. You can add all the folders to new installations of Resilio on other devices to gain them access to all folders in one swoop. You do this by linking the new installation to your existing id by sharing the fingerprint, more on that later.
Status Line
At the very bottom of the page when in most views, especially folders view, a status line shows in total how fast you're downloading and uploading just now.
Adding A New Folder
Right now, we have no folders having just installed it. Let's talk about the basic ways to start adding folders. This is kind of a rich interface with many options, but in my mind, the basic folder is just a folder with either read only access or read and write access that is shared using a link or a secret "key". For reference, let's note that the key is litterally the identity of the folder. It is how each device can find the folder. Every folder gets a unique key. The key is not the name of the folder, but the name of the folder is loosely associated with the key. Think key is my home address combined with my social security number. My name is well, my name. I could rename myself but my ssn would probably stay the same. In resilio the key is the only way folders are recognized for what they are. You can share me a key to one of your folders and I can use that at any time to gain access to your folder. Not all types of folders work this way, but the one I'm covering here is just the key alone.
If I want a new folder that would come with a new key, I can use the dropdown menu button at the top of the page and go down to standard folder. It will then go to the choose a folder page. It features an edit box for the path to this folder and some controls for browsing your filesystem. I never use these. Instead I manually browse the computer in file explorer to where I will place this folder, create the folder if it is a new one in file explorer as normal, go inside of it and then use alt+d to visit the address bar within file explorer and then ctrl+c to copy the full path to the current folder. Then I go back over to Resilio and paste into that edit box using ctrl+v keystroke. While you certainly can browse using the web UI, it honestly seems easier as a screen reader user to do it the other way.
Once the path is displayed, we move down to the open button and hit that. I'm not interested in making a new key right now, but presumably it generates the key on the fly at this point and you land in the folders page. You can examine the table to confirm the new folder is displayed. If it isn't an empty folder, the second column may inform you the folder is indexing. You may want to use the column check boxes I described above to turn on some other columns like for instance the remote size and size ones. This would let you readily examine the total known size of the folder as understood by all other devices with access to it, and additionally the size as stored locally on your machine. This can also be accomplished as a file count both remotely and locally. These numbers allow you to immediately know if you are up to date with your instance of Resilio's understanding of the total size of the folder. If it is a large folder, the remote size or remote count will be climbing as handshakes among all available peers and indexing allows your instance of Resilio to learn about all the content in the folder. At some point, you would probably have a constant, unchanging remote size but your local size would be smaller than that and climbing only if you download content.
Joining An Existing Folder
While making new folders is important, it's probably also going to come up that someone has given you a key or a link to a folder with the expectation that you can join in and download and possibly collaborate with them. The key is a long series of numbers. Have this number on the clipboard and open the Resilio interface. We do have multiple ways to do this next part. The normal way might be to use the dropdown menu at the top. press Space on this and then use heading navigation or just arrow to the "enter a key or link" option. It's a button, hit space on this. We should land in the "manual connection" dialogue. It has an edit box requesting your key or link. Either option works. Paste your key or your link here. A next button just below the edit box does what it sounds like, but if you have a paid license, you have the selective sync option just below that. Selective sync allows placeholder files that are 0 bytes in size to represent the content of the folder. You can see it but if you want it you have to download it on-demand. The placeholders have a .rsls extension. If you are joining a big folder you just want to be able to grab certain things out of, or just view and/or manipulate/organize content in without needing it to be taking up local disk space, you'd want to experiment with this. There is a checkbox here for on and one that is for off. They're labled correctly but pressing them doesn't change anything from the screen reader perspective. It seems that selective sync will be disabled as default, meaning the entire folder will download. If you want selective sync to be on, press the space bar on the check box that says on and then we just have to have faith that it worked because there is no confirmation. We then choose the next button.
Now we are right back in the "choose a folder" page exactly as demonstrated above. I recommend again going to file explorer as you would normally browse your computer's filesystem, creating the folder if not already created, and going to the address bar while already inside the folder and use ctrl+c keystroke to copy it. Go back to Resilio and paste (ctrl+v) the address into that edit field.. Now we can tab or arrow to the ok button at the bottom and activate it.
In theory, you have now joined this folder. Use the folders button at the top of the page to go to the folders view if not already, and then examine the table to see if the folder is syncing or what. Refer to brief discussion above on the columns and some of the useful info they can provide. Note that any folders that have selective sync actually proclaim "selective sync off" before the folder name according to your screen reader, at time of writing. Folders that do not have selective sync on just don't mention anything about it.
Controlling Existing Folders
If you have the checkboxes open, use f5 to go back to the normal view. If you're not on the folders view, use the folders button at the top to go to it. Now let's talk about controlling the folders. If you have a pro account especially, you'll have all the folders linked to your identity displayed by default, even if they aren't connected. I did mention above how to change this. But the important thing I'm trying to get across here is that when you introduce a new instalation of Resilio to your pro identity the folders are displaying, but they are not linked, at least not usually and definitely not according to my recommendation. That said, in order to download a folder onto this new computer, you'd have to link it with a local folder for it to download into. Interestingly enough, this is not a particularly nice portion of the Resilio Sync web UI. We have to emulate a mouse hover over the folder name which causes a couple of buttons to appear on the far right of the table. These are different depending on the folder's situation e.g. if it's not connected, one of the buttons is connect.
To emulate a mouse hover, generally with NVDA you arrow to the name of the folder and then you press caps lock+shift+m. If you don't use NVDA's laptop layout, you need the numpad equivilent and I have no idea what that is.
For JAWS users, you arrow to the folder name and then route JAWS cursor to PC cursor. Generally with laptop layout that's caps lock+shift+[ (left bracket). With desktop layout it's insert+numpad - (minus). Once you hear "route JAWS to PC" switch back to the virtual pc cursor using caps lock ; (semi colon) on a laptop or just numpad + (plus).
Now that you hopefully did a successful hover over the folder name, Navigate right across the table, usually ctrl+alt+right arrow will do the trick, until you hopefully find the buttons that resulted. You may also be able to press b to get to it although beware that it could be the buttons are appearing for a different folder so you may want to arrow around to check which row they're on. You can press space on the connect button. It will place you on the edit box where you need to paste the path to the folder. See above for tips on that. Note that you again have the option to make this a selective sync folder, and the same rules apply as discussed above. If you are reconnecting an existing folder, Resilio will then ask you if you intend to merge your local folder against the content of the folder on all other devices. Beware that if your folder is significantly out of date, you may cause problems by doing this and perhaps would rather delete your local folder and create it and then point Resilio at it while empty to get it to just download everything fresh. Note that sometimes these prompts are recognized as dialogues and may not get screen reader focus. In general, if this happens the dialogue will be at the very bottom of the page. You may be able to press enter on the dialogue to gain access to the controls in it or perhaps just pressing the tab key.
Disconnecting a folder is similar to above. navigate to the folder's name and move your mouse pointer to it. Now attempt to find the disconnect button. (Warning: if you are already disconnected, this is a remove button and that will clear the folder from all devices on your Sync Pro Identity, even other machines that had it downloaded and all synced up will disconnect and lose the key to sync it). Note also, disconnecting a folder does not delete it from disk, it only stops synchronizing it with other devices having been associated with that key.
The peers column, by default third one over, is generally a link that might say something like 1 of 1. This is telling you how many peers are available right now out of how many total seen in recent time of a few days. It's a link, hitting plain old space on that will bring up a peers page showing every peer in the folder. If it's not obvious, we mean every device that has this folder linked, be that with selective sync on or not. The device name is given and any information about the state of sync. Note that selective sync machines that don't have the whole folder downloaded always show as needing x number of files sent to them for probably obvious reasons. You can hit space on the name of a device and then go to the very bottom of the page to find out how many files along with the total size needs to be synced to or from that device. You can press escape a few times to get out of this.
This is probably super obvious but Resilio doesn't need the web UI open to function once it's set up. You can happily close out the browser and it'll do the syncing thing in the background. It's also super good at resuming where it left off. There's no concern if you lose internet or your battery dies or you otherwise interrupt transfers. It'll pick up where it left off when ever it is able.
Resilio has many settings. The global settings are available by pressing the options button which is found quickly if you arrow down from the top, but ctrl+, (comma) will do the trick as well. Navigating down the page after opening settings (options) will eventually find a bunch of tabs that may not call themselves as much. (General, identity, advanced, web UI, license). You can press space on these and that will change the content below to completely different screens of options. General might be useful to change the default sync folder location or check for updates. Identity is how you can introduce other Resilio installations with your Sync Pro identity. Advanced allows to do some connection settings including bandwidth limitations, and also has a power user preferences link that when activated loads up a whole new world of configurability that's somewhat into the "mess with it if you dare" category. Web UI lets you change your web UI's username and password pair, and the default port it uses as well as whether to allow incoming connections from other computers. That last one is handy if this is a server and or someone else's computer you need to be able to help with, but it does require that the port be opened (forwarded etc) if you will access it from outside of your Local Area Network. License is how you start the process of buying Sync Pro or activating a Resilio Sync installation to be part of your Sync Pro identity. Note that the last time I activated my Sync Pro identity I had to use the in-page browser to select the .btskey file as coppying the path to it wouldn't work for some reason.
One concept it's probably good to have is you can just put synced folders willie nillie. This does give better flexibility than many of the cloud file sharing and collaborating services offer. I personally sync my music folder right in the music folder on my user account for instance. You can sync a part of a synced folder using a different key in theory to for instance let someone else have access to just a subfolder only of such a folder that is already otherwise synced with yet other people, but last time I tried it, it actually caused weird problems that I couldn't quantify, so perhaps do it at your own risk only.
Resilio will let you put synced folders on your network, sd card, flash drive, ssd, internal or external, mapped network drives, folders stored in Dropbox and One Drive and such. If it's an external drive that you can unplug and do just that, Resilio will quietly let you know on the folders page that a folder cannot be found and in general will otherwise not give any headache about it though obviously any changes can't be synced to your drive until it's available again. In theory you can introduce changes to that folder with another computer that has the drive connected to it and when you give it back to Resilio it will sync those changes to other devices while also trying to sync any changes you missed out on to this drive.
Note that Resilio will as I mentioned above let you point it at a folder that is otherwise synced with another program like One Drive, Sync Thing etc. This allows for what I'd call Cross Syncing. Say I have Resilio and I drop something in my sync folder. Your Resilio downloads it into Dropbox. Dropbox then sees that you put a new file in it, and then uploads that file to Dropbox. Now, person 3 because that's really their name puts something else in that same folder on Dropbox. Dropbox downloads it, Resilio notices the new file and transmits it to me when ever I am online to get it. I have used this extensively with One Drive folders am actually unsure of scenarios where it just plain won't work properly e.g. does it actually work right with Dropbox? No idea. I do want to point out that Sync-On-Demand (One Drive) and Smart Sync (Dropbox) in conjunction with cross-syncing via Resilio sounds like a very, very bad idea. Also, don't let two or more instances of the same Resilio folder on different devices cross sync that same folder to the same cloud location that would already sync to both locations. For instance, say we both have a music folder in One Drive. We also have a music folder in Resilio. We both point Resilio at our music folder in One Drive. Not only is that pointless because One Drive is already syncing that for us thank you very much, but it has the potential to break things super bad because both Resilio and One Drive will be attempting to move the same files simultaneously and we'll have conflicts. With One Drive specifically however, pointing one specific instance of Resilio at a One Drive folder has made it so that people accessing that folder via other instances of Resilio have no trouble as long as they don't try to point it at their own One Drive folder too, and people accessing it on One Drive don't know anything different. Might not have been too obvious but there's nothing wrong with using Resilio to cross-sync two different other cloud services e.g. your music folder that Resilio is pointed at is in your One Drive. I pointed at my music in my Dropbox. Weird perhaps, but Resilio is happy to please.
Resilio's Selective Sync option has two important factors. Firstly, files not downloaded are displayed using 0 byte placeholder files as representations of them. These representation files have a .rsls extension. You can hit enter on an .rsls to download it although that's a little hit and miss. If we hit the context key or shift+f10 while focused on one in file explorer we do have a couple of options, sync to this device or remove from this device and possibly remove from all devices. You can do this on entire folder, subfolders of a synced folder, etc. For instance, the entire folder one could choose remove from this device after hitting shift+f10 while focused on the folder in file explorer (but don't open it) and that will delete all locally downloaded content from the folder and turn the files back into .rsls placeholders. If you use One Drive and Sync-on-Demand, this is similar.
Note that Sync-On-Demand does not work on certain filesystems mostly fat32. I can't remember if XFat works or not. I always format sd cards and external flash drives that I think I will want Resilio to sync things onto as NTFS and call it a day. This is just Sync-On-Demand mostly, it does actually sync to them just fine just you don't get full Sync-On-Demand functionality.
Note that I do have the impression Resilio uses more CPU time and more internet for Sync-On-Demand folders. I'm yet to prove it.
Note that while Resilio supports filesystem watcher events so will know immediately when you change a local file and can sync it right away, it also polls the folders at regular intervals. By default this is every 600 seconds. You can change that in the power user section of the advanced settings I mentioned above. It is possible that an external drive or an internal one with power disable functionality that can spin down (obviously I'm talking about spinning hard drives haha) may spool up every time Resilio does the manual polling. This could make it desirable to slow this interval down a fair bit.
Note that Resilio will sync on a device that is not synchronized properly with the current time, but it won't like it. It'll generate some errors and may not sync in full or might otherwise cause weird conflicts.
Some keyboard shortcuts I use often are ctrl+u to get to the "add a key or link" dialogue, ctrl+, (comma) to go to settings and ctrl+/ (forward slash) to access a list of keyboard shortcuts. Escape will often times close something out and land you back on the main page. F5 is your friend in Resilio. If you can't get things to cooperate, f5 to refresh the page may help.
Screen Reader Keystrokes
Mouse Hover: as Needed on Folders View to Make Change Them
It feels like the most important thing to get across here is the ability to move the mouse to the folder name as discussed before. The goal here is to hover the mouse pointer over top of the folder name to cause some options like disconnect or connect and options to appear next to the folder name.
- NVDA Generally caps lock+shift+m.
- JAWS: route JAWS to the virtual pc cursor and then switch back to the virtual pc cursor. Generally that would be caps lock+shift+[ (left bracket) and then caps lock ; (semi colon) for laptop users or insert+numpad - (minus) and then numpad++ (plus) for desktop users.
Second most important is how to navigate the table. For JAWS users, having smart navigation on and/or screen layout mode enabled introduces a whole new and interesting can of worms but in general, for both screen readers, holding down the ctrl and alt keys and using the arrows lets you navigate the table structure of the folder view.
- Ctrl+alt+left will go left across the columns, to the far left being the name of the folder.
- Ctrl+alt+right goes back to the right again, and, if displayed, the far right will be the disconnect or connect button and the options button.
- Ctrl+alt+up and down arrow go up and down between the rows respectively.
For example, you can go to the far left to the folder names and then use ctrl+alt+down arrow to quickly scroll down the list of folders hearing their names and only their names as you go.
Note that JAWS also has this nifty alt+windows+up and down and left and right thing that reads the whole row or column as you go. For instance ctrl+alt+down would go down the table reading all the contents of the table's row (all of the columns) in one fell swoop each time you press it. Of course, you get that automagically with smart table navigation turned on in JAWS or just having JAWS set to use screen layout for web views. I'm feeling a little too lazy to laboriously document the whole procedure for enabling that, so if you wanna try it, it's your very own adventure.