Human-Computer Interaction (HCI) Unit 2 Notes
Introduction to Interactive Design for Disability
Basics of Interactive Design for Disability
Interactive design for disability focuses on creating user interfaces that are accessible
to individuals with various disabilities. This includes visual impairments, hearing
impairments, motor disabilities, and cognitive disabilities. The goal is to ensure that
all users, regardless of their abilities, can interact with technology effectively and
efficiently.
• Visual Impairments: Design considerations include high-contrast color
schemes, scalable text, and screen reader compatibility. For example, using ARIA
(Accessible Rich Internet Applications) landmarks can help screen readers
navigate web content more effectively.
• Hearing Impairments: Providing text alternatives for audio content, such as
captions and transcripts, is crucial. Additionally, visual alerts can replace
auditory cues.
• Motor Disabilities: Ensuring that interfaces can be navigated using keyboard
shortcuts and other assistive devices is essential. For instance, ensuring that all
interactive elements are reachable via keyboard navigation.
• Cognitive Disabilities: Simplifying the user interface, providing clear
instructions, and maintaining consistency in design can help users with cognitive
disabilities. For example, using simple language and avoiding complex navigation
structures.
Process Verification and Validation in Product Development
Verification and Validation
Verification and validation are critical components of the product development
process in HCI.
• Verification: This involves ensuring that the product is built correctly according
to the specifications. It answers the question, "Are we building the product
right?" Verification activities include code reviews, inspections, and testing to
ensure that the product meets its design specifications.
• Validation: This involves ensuring that the product is the right one, meaning it
meets the user's needs and requirements. It answers the question, "Are we
building the right product?" Validation activities include user testing, usability
testing, and beta testing to ensure that the product is useful and usable.
Importance of Verification and Validation
Both verification and validation are essential to ensure that the final product is not
only technically sound but also meets the needs of its users. Skipping these steps can
lead to products that are difficult to use or do not meet user expectations.
Visibility Test and Menu Creations
Visibility Test
Visibility tests are conducted to ensure that all elements of the user interface are
visible and accessible to users. This includes testing for color contrast, font size, and
the placement of interactive elements.
• Color Contrast: Ensuring that text and background colors have sufficient
contrast to be readable by users with visual impairments.
• Font Size: Providing options for users to increase font size without breaking the
layout.
• Placement of Elements: Ensuring that interactive elements are placed in logical
and predictable locations.
Menu Creations
Creating effective menus is crucial for navigation and usability.
• Consistency: Menus should be consistent across the application or website to
provide a predictable user experience.
• Clarity: Menu items should be clearly labeled and easy to understand.
• Accessibility: Menus should be accessible via keyboard navigation and screen
readers. For example, using ARIA roles and properties to enhance accessibility.
Prototype Development
Importance of Prototyping
Prototyping is a crucial step in the design process. It allows designers to create a
preliminary version of the product, gather feedback, and make necessary
adjustments before finalizing the design.
• Iterative Design: Prototyping supports iterative design, where the design is
refined through multiple iterations based on user feedback.
• Early Feedback: Prototypes allow for early user testing, which can identify
usability issues early in the development process.
Types of Prototypes
• Low-Fidelity Prototypes: These are simple, often hand-drawn sketches that
focus on the basic layout and functionality.
• High-Fidelity Prototypes: These are more detailed and interactive, often
created using design tools like Adobe XD or Figma.
Software Development Life Cycle (SDLC)
Phases of SDLC
The Software Development Life Cycle (SDLC) is a framework that defines tasks
performed at each stage in the software development process.
1. Requirement Analysis: Identifying and documenting the requirements of the
system.
2. Design: Creating the architecture and design of the system.
3. Implementation: Writing the code and developing the software.
4. Testing: Conducting various tests to ensure the software meets requirements.
5. Deployment: Releasing the software to users.
6. Maintenance: Providing ongoing support and updates.
Importance of SDLC
Following an SDLC ensures that the software development process is systematic and
well-organized, leading to higher quality products.
Requirement Analysis and Usability Measures
Requirement Analysis
Requirement analysis involves gathering and documenting the requirements of the
system. This includes understanding user needs, business goals, and technical
constraints.
• User Requirements: Understanding what users need and expect from the
system.
• Business Requirements: Aligning the system with business goals and
objectives.
• Technical Requirements: Ensuring the system is technically feasible and
scalable.
Usability Measures
Usability measures are used to evaluate the effectiveness, efficiency, and satisfaction
of the user experience.
• Effectiveness: The ability of users to complete their tasks.
• Efficiency: The resources used in relation to the accuracy and completeness of
tasks.
• Satisfaction: The comfort and acceptability of the system to users.
Develop a Prototype
Steps to Develop a Prototype
1. Define Objectives: Clearly define the goals and objectives of the prototype.
2. Sketch and Wireframe: Create initial sketches and wireframes to outline the
basic structure.
3. Build the Prototype: Use design tools to create an interactive prototype.
4. User Testing: Conduct user testing to gather feedback.
5. Iterate: Refine the prototype based on feedback and repeat the testing process.
Understanding the Design Principles for Development
Design Principles
Design principles guide the creation of effective and user-friendly interfaces.
• Consistency: Maintaining consistency in design elements and interactions.
• Visibility: Ensuring that all elements are visible and accessible.
• Feedback: Providing immediate and clear feedback for user actions.
• Simplicity: Keeping the design simple and intuitive.
• Flexibility: Allowing users to customize and adapt the interface to their needs.
Evaluation Techniques
Types of Evaluation Techniques
Evaluation techniques are used to assess the usability and functionality of a system.
• Cognitive Walkthrough: Evaluates how well the design supports users in
learning tasks.
• Heuristic Evaluation: Experts examine the design to identify violations of
usability principles.
• User Testing: Conducting tests with real users to gather feedback on usability.
• Automated Analysis: Using tools to analyze the interface for potential issues.
Existing Theories and Frameworks
Theories and Frameworks
Several theories and frameworks guide the design and evaluation of user interfaces.
• Cognitive Models: Represent users' mental processes and interactions with the
system.
• Task Analysis: Breaks down user tasks into subtasks to understand user
behavior.
• User-Centered Design: Focuses on involving users throughout the design
process to ensure the final product meets their needs.
Development Strategies
Strategies for Development
Effective development strategies ensure that the product is developed efficiently and
meets user needs.
• Agile Development: An iterative approach that involves frequent releases and
continuous improvement.
• User-Centered Design: Involving users in the design process to ensure the
product is usable and meets their needs.
• Rapid Prototyping: Creating quick prototypes to gather feedback and iterate on
the design.
Implementing Communication Development for the Product
Communication Development
Effective communication is essential for the success of any product.
• User Feedback: Gathering and incorporating user feedback to improve the
product.
• Documentation: Providing clear documentation and support materials.
• User Education: Educating users on how to use the product effectively.
Developing a Website for Disabilities
Considerations for Developing Websites for Disabilities
Developing websites for disabilities requires a focus on accessibility.
• WCAG Guidelines: Following the Web Content Accessibility Guidelines (WCAG)
to ensure the website is accessible to users with disabilities.
• Screen Reader Compatibility: Ensuring the website is compatible with screen
readers.
• Keyboard Navigation: Allowing users to navigate the website using only a
keyboard.
Finding the Suitable Framework
Choosing a Framework
Choosing the right framework for development depends on the project requirements
and goals.
• React: A popular JavaScript library for building user interfaces.
• Angular: A comprehensive framework for building large-scale applications.
• Vue.js: A progressive framework for building user interfaces.
Types of Mobile Applications
Types of Mobile Applications
Mobile applications can be categorized into several types.
• Native Applications: Developed specifically for a particular platform (e.g., iOS or
Android).
• Hybrid Applications: Developed using web technologies and run on multiple
platforms.
• Web Applications: Accessible via a web browser and do not require installation.
Developing Mobile Widgets
Mobile Widgets
Widgets are small applications that provide quick access to information or
functionality.
• Design Considerations: Widgets should be simple, intuitive, and provide
immediate value.
• Development: Widgets can be developed using frameworks like Flutter or React
Native.
Developing Games for Mobile Applications
Mobile Game Development
Developing games for mobile applications involves creating engaging and interactive
experiences.
• Game Engines: Using game engines like Unity or Unreal Engine to develop
games.
• User Experience: Focusing on creating a smooth and enjoyable user experience.
Types of Mobile Architecture
Mobile Architecture
Mobile architecture refers to the design and structure of mobile applications.
• Client-Server Architecture: The application interacts with a server to fetch and
store data.
• Microservices Architecture: Breaking down the application into smaller,
independent services.
Importance of Mobile Design Needs
Importance of Mobile Design
Mobile design is crucial for creating effective and user-friendly mobile applications.
• User Experience: A well-designed mobile application provides a better user
experience.
• Performance: Efficient design ensures the application runs smoothly and
quickly.
• Accessibility: Ensuring the application is accessible to all users, including those
with disabilities.
Development of Mobile Application and Its Elements
Elements of Mobile Application Development
Developing a mobile application involves several key elements.
• User Interface: Designing the visual elements of the application.
• User Experience: Ensuring the application is easy to use and navigate.
• Backend Services: Developing the backend services to support the application.
• Testing: Conducting thorough testing to ensure the application is bug-free and
performs well.
Important Tools for Mobile Application Development
Tools for Mobile Application Development
Several tools are essential for mobile application development.
• Integrated Development Environments (IDEs): Tools like Android Studio and
Xcode provide a comprehensive environment for development.
• Design Tools: Tools like Sketch, Adobe XD, and Figma for designing the user
interface.
• Testing Tools: Tools like Appium and Espresso for testing the application.
Interactive Product Development
Interactive Product Development
Developing interactive products involves creating engaging and user-friendly
interfaces.
• User-Centered Design: Involving users in the design process to ensure the
product meets their needs.
• Prototyping: Creating prototypes to gather feedback and iterate on the design.
• Testing: Conducting usability testing to identify and fix issues.