52 lines
No EOL
2.3 KiB
Python
Executable file
52 lines
No EOL
2.3 KiB
Python
Executable file
import os
|
||
import sys
|
||
|
||
# Add parent directory to path to import shared modules
|
||
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
||
|
||
from visual_qc_apps.flask_app_template import FlaskAppTemplate
|
||
|
||
class TextReadabilityApp(FlaskAppTemplate):
|
||
"""
|
||
Text Readability Check
|
||
"""
|
||
|
||
def __init__(self):
|
||
# Define the hardcoded prompt
|
||
prompt = """You are performing a visual quality‐control check on a Point of Sale (POS) advertisement. Your task is to determine whether the text on the advertisement is readable from the appropriate viewing distance:
|
||
|
||
• For large media (Floor‐Standing Display Units, posters, etc.): The text must be clearly readable from about 3 meters away.
|
||
• For smaller media (wobblers, shelf talkers, etc.): The text must be clearly readable from about 1 meter away.
|
||
|
||
STEPS TO EVALUATE:
|
||
1. Identify all text elements in the advertisement, excluding any terms and conditions.
|
||
2. Examine the text size, font style, and contrast with the background.
|
||
3. For each text element, assess whether it would be readable from the appropriate viewing distance.
|
||
4. Pay special attention to:
|
||
a. Text size - Is it large enough to be read from a distance?
|
||
b. Font choice - Is the font clear and easily readable?
|
||
c. Contrast - Does the text stand out clearly against its background?
|
||
d. Spacing - Is there sufficient spacing between letters, words, and lines?
|
||
5. Consider any potential obstacles to readability such as:
|
||
a. Decorative fonts that sacrifice legibility for style
|
||
b. Overlapping elements that obscure text
|
||
c. Poor contrast that makes text blend into the background
|
||
d. Text that is too small relative to viewing distance
|
||
|
||
YOUR OUTPUT:
|
||
• State whether the text elements "pass" or "fail" the readability checkpoint.
|
||
• If they fail, provide 1–2 concise recommendations for improving text readability.
|
||
• Include a JSON code block with these fields:
|
||
{
|
||
"text_readability": "Pass" or "Fail",
|
||
"readability_score": "High", "Medium", or "Low",
|
||
"recommendations": ["Recommendation 1", "Recommendation 2"] (only if "Fail")
|
||
}"""
|
||
|
||
# Initialize the Flask app with the prompt
|
||
super().__init__(__name__, prompt)
|
||
|
||
# Run the app if executed directly
|
||
if __name__ == "__main__":
|
||
app = TextReadabilityApp()
|
||
app.run(debug=True) |