SoK/2023/StatusReport/Rishi Kumar
Accessibility: Work on improving the accessibility of Tokodon
This project aims to improve the accessibility of tokodon by writing appium tests.
Writing these tests would ensure a set standard of code quality is maintained in tokodon and with improved accessibility leading to a more efficient and convenient experience for the end users.
Mentor
Carl Schwan
Merge Request
- Merge Request for testing different types of interactions on status and its type.
- Merge Request for testing Search
- Merge Request for fixing the broken search UI in tokodon-offline
- Merge Request for making tokodon-offline executable.
Blog Posts
Timeline
Week 1 and Week 2
The first couple of weeks went on in researching how I would start tokodon without network connectivity, it was achieved by creating a new entry point named main-offline.cpp with the account initialised as the object of MockAccount class following which I created an executable named tokodon-offline by making relevant changes in src/CMakeLists.txt. The merge request for the implementation can be found here.
Week 3 and Week 4
The following two weeks were spent on writing appium test for search functionality. For this, I first had to make the search function in tokodon-offline, for achieving this I studied the already unit-tests for search and found out the code made mock API calls and received the search results through a search-result.json file so I followed the same approach and made the same mock API calls to receive search responses after which I was successful in making the search function. The merge request for this implementation can be found here
Once the search functionality was implemented, my next task was to write appium test for it, for which I referred to Harald's blog for the implementation, the merge request for search appium test can be found here
Week 5 and Week 6
The CI pipelines of tokodon were failing due to the tests performing settings read/write operations which were not required while testing, the maintainers of Tokodon helped me identify this issue and made a commit to fix the issue here.
After the CI pipelines were fixed I worked on writing appium tests for testing the interaction buttons of status and whether the status was a normal status or containing spoiler text, for achieving this I first made mock API calls to fetch the required statuses on the main timeline, then wrote appium tests for the relevant interactions button and type of status. The final merge request for the implementation can be found here
I also wrote a mid-journey blog post about my Season of KDE experience in these weeks