DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Last call! Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • The Cypress Edge: Next-Level Testing Strategies for React Developers
  • How to Build Scalable Mobile Apps With React Native: A Step-by-Step Guide
  • Mastering React App Configuration With Webpack
  • Overcoming React Development Hurdles: A Guide for Developers

Trending

  • A Guide to Developing Large Language Models Part 1: Pretraining
  • Transforming AI-Driven Data Analytics with DeepSeek: A New Era of Intelligent Insights
  • How to Convert XLS to XLSX in Java
  • Microsoft Azure Synapse Analytics: Scaling Hurdles and Limitations
  1. DZone
  2. Coding
  3. JavaScript
  4. Designing Accessible Telehealth Platforms for Older Adults: A React Developer's Guide

Designing Accessible Telehealth Platforms for Older Adults: A React Developer's Guide

Using React, ensure that alternate telehealth access is developed for the older adult population, allowing them to benefit from the capabilities of remote care.

By 
Ashim Upadhaya user avatar
Ashim Upadhaya
·
Dec. 18, 24 · Tutorial
Likes (1)
Comment
Save
Tweet
Share
6.4K Views

Join the DZone community and get the full member experience.

Join For Free

As telehealth services increasingly become relevant in today’s world, particularly after the COVID-19 pandemic, all the user populations, including the elderly, must benefit from the programs leading to the importance of the above recommendations. 

React is adopted in this article to examine the key technical approaches for creating accessible telehealth applications that should follow the WCAG. As with many things, it is often possible to build interfaces that are accessible to all, including the elderly, by considering the following key areas of design or development.

Why Accessibility Matters for Older Adults in Telehealth

Challenges include vision problems, hearing problems, agility, and cognitive loading problems, which are evident in old-age adults. The composite of these factors makes it hard for them to maneuver across multiple dimensions of digital interfaces. Since telehealth is used to receive medical services remotely, making these platforms inclusive becomes necessary (Cynthi, et al., (2021)).

Key issues faced by older adults include:

  • Vision impairments: Struggles to read unsubtle texts and numbers, differentiate colors, and discern fine details of interface items.
  • Hearing difficulties: Hear sounds or speech during video calls or have issues comprehending what is said during such calls.
  • Motor skills limitations: Near impossibilities when trying to operate small buttons or when being required to get precise with the controls.
  • Cognitive load: Problem in handling complicated displays or having a problem shifting from one interface to another.

Introducing accessibility guidelines into telehealth platforms requires developers to design solutions where older adults can find utilization more comfortable than in conventional systems.

Adhering to WCAG Guidelines in React

WCAG refers to the Web Content Accessibility Guidelines through which there is an availability of standards that make web content more receptive. These guidelines focus on four main principles: POUR, which stands for Perceivable, Operable, Understandable, and Robust is the process (Nguyen, 2024). Now, let us discuss how each of these principles can be enacted with the help of React to develop accessible telehealth platforms for older adults.

Perceivable: Semantic HTML and ARIA

Semantic HTML and ARIA attributes used in media elements enable the screen reader to correctly inform a user with an assistive device.

HTML
 
<div className='App'>

  // Example: Semantic navigation bar
  <nav aria-label='Main Navigation'>
    <ul>
      <li>
        <a href='/appointments'>Appointments</a>
      </li>
      <li>
        <a href='/profile'>Profile</a>
      </li>
      <li>
        <a href='/settings'>Settings</a>
      </li>
    </ul>
  </nav>

</div>


Here, the word ‘navigation bar’ is given aria-label, which enhances the chances that a screen reader will understand the content of the section. Employing semantic HTML tags such as <nav> and <ul> make them comprehensible to participants using screen readers or any other tools they may have (Puzis, Borodin, Soviak, & Melnyk, 2015).

Operable: Keyboard Navigation

Some older people might have problems with using a mouse and prefer to access the links with a keyboard only. This is important for accessibility because it requires all elements to be clickable while using only the keyboard.

JavaScript
 
import React, { useEffect, useRef } from 'react';

export function App(props) {

  return (
    <div className='App'>
      // Example: Keyboard-accessible modal
    </div>
  );
}

const Modal = ({ isOpen, onClose }) => {
  const modalRef = useRef();
  useEffect(() => {

    if (isOpen) {
      modalRef.current.focus();
    }

  }, [isOpen]);
  
  if (!isOpen) return null;
  
  return (
    <div className="modal" role="dialog" aria-modal="true" tabIndex="-1" ref={modalRef}>

      <button onClick={onClose} aria-label="Close Modal">Close</button>

      <p>Modal Content</p>
    </div>

  );
};


In this example, the moment the modal is opened, it automatically comes into focus, making it sensitive to users using a keyboard. The close button uses an aria-label for easy identification, and the modal is described as a dialog; it uses an aria-modal attribute (Watanabe, Geraldo, & Mattos, 2014).

Understandable: Clear Labels and Instructions

The low cognitive load is supported by unambiguously presenting instructions and making sure that every form element has a label to refer to or a name to describe it.

JavaScript
 
import React from 'react';
export function App(props) {

  return (

    <div className='App'>
      // Example: Form with accessible labels
      <form>

        <label htmlFor='name'>Name</label>

        <input type='text' id='name' name='name' aria-required='true' />

        <label htmlFor='date'>Appointment Date</label>

        <input type='date' id='date' name='date' aria-required='true' />

        <button type='submit'>Submit</button>

      </form>

    </div>

  );

}
// Log to console

console.log('Hello console');


In other words, the label element is associated with the proper form input through the htmlFor attribute, which is more comprehensible for screen reader users. The aria-required attribute tells the older adults that the fields have to be filled in; this enables the older adults to complete the form appropriately.

Robust: Accessibility to the Assistive Technologies

Common parts of the building that are usable in all technologies of application include screen readers, voice controls, or any other input devices that make the platform adaptable in the future and accessible by all.

Implementing Accessible Video Conferencing Features

Perhaps one of the most crucial elements of the telemedicine system is the video conferencing service. For the elderly, this feature should be intuitive, topped with large buttons with clearly printed labels and simple audio control.

Large, Easy-to-Use Buttons

For users with poor motor control abilities, the buttons should be large, clickable, and easily labeled.

JavaScript
 
import React from 'react';

export function App(props) {
  return (
    <div className='App'>
      // Example: Accessible video control buttons
      import AccessibleButton from './AccessibleButton';
      const VideoControls = (
        ({ onMute, onToggleVideo, onEndCall, isMuted, isVideoOn }) => (
          <div className='video-controls'>
            <AccessibleButton onClick={onMute} aria-pressed={isMuted}>
              {isMuted ? 'Unmute' : 'Mute'}
            </AccessibleButton>

            <AccessibleButton onClick={onToggleVideo} aria-pressed={isVideoOn}>
              {isVideoOn ? 'Stop Video' : 'Start Video'}
            </AccessibleButton>

            <AccessibleButton onClick={onEndCall} aria-label='End Call'>
              End Call
            </AccessibleButton>
          </div>
        )
      ); 
      export default VideoControls;
    </div>
  );
}

// Log to console
console.log('Hello console');


These buttons are large and clear, and the keyboard or screen reader is accessible, and they are identified by meaningful text. The aria-pressed attribute gives more information about the current state of the button, whether the user is muted or not, making it easier for a visually impaired user.

Clear Audio Controls

Clear differentiation of control settings is crucial, particularly for elderly people and those with hearing difficulties. This could reduce their overall telehealth experience since the microphone helps people adjust the volume.

JavaScript
 
import React from 'react';

export function App(props) {
  return (
    <div className='App'>
      // Example: Accessible audio controls
      const AudioControls = (
        ({ volume, onVolumeChange }) => (
          <div className='audio-controls'>
            <label htmlFor='volume-slider'>Volume</label>
            <input
              type='range'
              id='volume-slider'
              name='volume'
              min='0'
              max='100'
              value={volume}
              onChange={onVolumeChange}
              aria-valuemin='0'
              aria-valuemax='100'
              aria-valuenow={volume}
              aria-label='Volume Control'
            />
          </div>
        )
      ); 
      export default AudioControls;
    </div>
  );
}


The slider is also usable for screen readers because the volume is now defined as aria-value min, aria-value max, and aria-value. That way, you can easily control the audio without having to spend the entire time making changes based on the visual cue.

Example: Video Conferencing Interface

Thus, by integrating available controls, it is possible to construct a full-scale VC interface specifically for senior users.

JavaScript
 
const VideoConference = () => {
  const [isMuted, setIsMuted] = useState(false);
  const [isVideoOn, setIsVideoOn] = useState(true);
  const [volume, setVolume] = useState(50);

  const handleMute = () => setIsMuted(!isMuted);
  const handleToggleVideo = () => setIsVideoOn(!isVideoOn);
  const handleEndCall = () => {
    // logic to end the call
  };
  const handleVolumeChange = (e) => setVolume(e.target.value);

  return (
    <div className="video-conference">
      <div className="video-feed" role="region" aria-label="Video Feed">
        {/* Video stream component */}
      </div>
      <VideoControls
        onMute={handleMute}
        onToggleVideo={handleToggleVideo}
        onEndCall={handleEndCall}
        isMuted={isMuted}
        isVideoOn={isVideoOn}
      />
      <AudioControls
        volume={volume}
        onVolumeChange={handleVolumeChange}
      />
    </div>
  );
};


This example offers a simple video conferencing solution where customers can manage their audio and video quality while also guaranteeing that the main structure of the interface can be managed using a keyboard and is compatible with an assistive gadget.

Conclusion

Ensuring that credible, alternate telehealth access is developed for the older adult population allows anyone, regardless of disability, to fully benefit from the capabilities of remote care. WCAG standards, including proper use of HTML, ARIA, keyboard navigation, and accessible video player, when employed, will produce logical platforms. Flexibility lies in the components of React: cross-cutting solutions and designs that embrace, engage, and empower the elderly, as well as coordinate the divisions between technology and health care.

This guide offers only several examples of how React can be used while designing accessible telehealth platforms. Championing the issue of accessibility of the developed solutions is the best way of making sure that the Digital Health solutions that are being developed will benefit those who need them most.

References

  • Cynthi, J., Sieck., Mark, R., Ann, Scheck, & McAlearney. ((2021)). Could Telehealth Improve Equity During the COVID-19 Pandemic? Journal of the American Board of Family Medicine,. doi:10.3122/JABFM.2021.S1.200229
  • Nguyen, H. (2024). Enhancing Accessibility in Web Applications: A Comprehensive Study on Common Accessibility Issues and Implementing Solutions in React Application. Enhancing Accessibility in Web Applications, 61. Retrieved from https://urn.fi/URN:NBN:fi:aalto-202408255819
  • Puzis, Y., Borodin, Y., Soviak, A., & Melnyk, V. (2015). Affordable web accessibility: a case for cheaper ARIA. Proceedings of the 12th International Web for All Conference, 1-4. doi:https://doi.org/10.1145/2745555.2746657
  • Watanabe, W. M., Geraldo, R. J., & Mattos, R. P. (2014). Keyboard navigation mechanisms in tab widgets: an investigation on ARIA's conformance. Proceedings of the 29th Annual ACM Symposium on Applied Computing, 721-726. doi:https://doi.org/10.1145/2554850.2554947
JavaScript React (JavaScript library)

Opinions expressed by DZone contributors are their own.

Related

  • The Cypress Edge: Next-Level Testing Strategies for React Developers
  • How to Build Scalable Mobile Apps With React Native: A Step-by-Step Guide
  • Mastering React App Configuration With Webpack
  • Overcoming React Development Hurdles: A Guide for Developers

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: