Designing software for all users with universal design principles