cntrstnw.py

Created by ews31415

Created on August 13, 2023

974 Bytes

The following Python script compares a contrast of colored text (foreground) color against a background color. It is important to have good, high contrast. High contrast allows for easy readability and it’s easier on the eyes. This becomes more important when considering web page development to allow accessibility.

Sources

“How to calculate colour contrast” Accessibility Developer Guide (ADG*). An initiative of Access for all. Last Edited July 29, 2023. Accessed August 8, 2023. https://www.accessibility-developer-guide.com/knowledge/colours-and-contrast/how-to-calculate/

“Relative Luminance” Web Content Accessibility Guidelines (WCAG) 2.0. W3C, Inc. (World Wide Web Consortium, Inc.) Last Edited December 11, 2008. Accessed August 8, 2023. https://www.w3.org/TR/WCAG20/#relativeluminancedef

My math and calculator blog: edspi31415.blogspot.com


from math import *
from kandinsky import *
# 2023-08-13 EWS
# Contrast - Numworks Version

# Source:
# www.w3.org, "WCAG 2.0"
# ADG*, "How to calculate colour contrast"

# CODE:
# subs
def lumin(r,g,b):
  r=compare(r/255)
  g=compare(g/255)
  b=compare(b/255)
  return .2126*r+.7152*g+.0722*b
def compare(x):
  if x<=.03928:
    x=x/12.92
  else:
    x=((x+.055)/1.055)**2.4
  return x

# main
print("Color Contrast \n(0-255) \nBackground color:")
r1=int(input("red? "))
g1=int(input("green? "))
b1=int(input("blue? "))
print("Text color:")
r2=int(input("red? "))
g2=int(input("green? "))
b2=int(input("blue? "))

# calc
l1=lumin(r1,g1,b1)
l2=lumin(r2,g2,b2)
cntr=(max(l1,l2)+.05)/(min(l1,l2)+.05)

# draw
c1=color(r1,g1,b1)
c2=color(r2,g2,b2)
cb=color(0,0,0)
cw=color(255,255,255)
fill_rect(0,0,320,240,c1)
draw_string("Contrast test: Numworks",25,25,c2,c1)
draw_string("Contrast: "+str(cntr),25,50,cb,cw)
draw_string("Press OK to continue.",25,150,c2,c1)

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.