{"id":367,"date":"2024-12-23T05:43:26","date_gmt":"2024-12-23T05:43:26","guid":{"rendered":"https:\/\/quasain-consultants.com\/?page_id=367"},"modified":"2025-09-15T07:16:00","modified_gmt":"2025-09-15T07:16:00","slug":"technology-based-solution","status":"publish","type":"page","link":"https:\/\/quasain-consultants.com\/?page_id=367","title":{"rendered":"Technology Based Solution"},"content":{"rendered":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Accessibility Controls<\/title>\n    <style>\n     \/* Accessibility Controls Container *\/\n        .accessibility-controls-container {\n            position: fixed;\n            bottom: 140px;\n            left: 5px;\n            z-index: 1100;\n            width: 150px;\n            background-color: #ffffff;\n            border-radius: 10px;\n            box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);\n            display: none; \/* Hidden initially *\/\n            flex-direction: column;\n            align-items: center;\n            padding: 10px;\n            transition: all 0.4s ease-in-out;\n        }\n\n        .accessibility-controls-container.visible {\n            display: flex; \/* Make container visible when toggled *\/\n        }\n\n        \/* Toggle Button *\/\n        .toggle-button {\n            position: fixed;\n            bottom: 80px;\n            left: 20px;\n            width: 50px;\n            height: 50px;\n            border-radius: 50%;\n            border: none;\n            cursor: pointer;\n            background: url('https:\/\/encrypted-tbn0.gstatic.com\/images?q=tbn:ANd9GcTdPQT2T9QHaFcLANweZVG2ixlfmAB5r7P5qA&s') no-repeat center center;\n            background-size: cover;\n            box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);\n            z-index: 1200;\n        }\n\n        \/* Accessibility Buttons *\/\n        .accessibility-buttons {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 10px;\n            justify-content: center;\n            width: 100%;\n        }\n\n        .accessibility-buttons button {\n            width: 60px;\n            height: 40px;\n            background-color: #fff;\n            border: 2px solid #ccc;\n            border-radius: 5px;\n            font-size: 14px;\n            cursor: pointer;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n        }\n\n        .accessibility-buttons button:hover {\n            background-color: #f0f0f0;\n        }\n\n        \/* Reset Button *\/\n        .reset-button {\n            background-color: #ffdddd;\n            color: #000;\n            font-weight: bold;\n        }\n\n        \/* Color Picker *\/\n        .color-picker-container {\n            display: none;\n            flex-direction: column;\n            gap: 10px;\n            margin-top: 10px;\n            justify-content: center;\n            align-items: center;\n        }\n\n        .color-picker-container.visible {\n            display: flex;\n        }\n\n        .color-button {\n            width: 50px;\n            height: 40px;\n            border-radius: 5px;\n            cursor: pointer;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            border: 2px solid #ccc;\n        }\n\n        .color-button.light-yellow { background-color: #ffffe0; }\n        .color-button.light-green { background-color: #d3ffd3; }\n        .color-button.light-blue { background-color: #add8e6; }\n        .color-button.light-orange { background-color: #ffe4b5; }\n\n        @media (max-width: 768px) {\n            .accessibility-controls-container {\n                width: 100px;\n            }\n\n            .accessibility-buttons button {\n                width: 45px;\n                height: 35px;\n                font-size: 12px;\n            }\n        }\n\n        \/* Body zoom scaling effect *\/\n        .zoomed-content {\n            transform-origin: top left;\n            transition: transform 0.2s ease-in-out;\n        }\n    <\/style>\n    <script>\n    \/\/ Toggle accessibility controls visibility\n        function toggleControls() {\n            const container = document.querySelector('.accessibility-controls-container');\n            container.classList.toggle('visible');\n        }\n\n       \/\/ Toggle color picker visibility\nfunction toggleColorPicker() {\n    const colorPicker = document.querySelector('.color-picker-container');\n    colorPicker.classList.toggle('visible');\n}\n\n\/\/ Change background color for the page and WordPress blocks\nfunction changeBackgroundColor(color) {\n    \/\/ Change background color of the entire body\n    document.body.style.backgroundColor = color;\n\n    \/\/ Select specific WordPress blocks and other elements\n    const elementsToUpdate = document.querySelectorAll(`\n        .wp-block,            \/* General WordPress blocks *\/\n        .wp-columns,          \/* WordPress columns *\/\n        .wp-block-group,      \/* WordPress group blocks *\/\n        .card,                \/* Card elements *\/\n        table,                \/* Tables *\/\n        .has-background,      \/* Elements with WordPress 'has-background' class *\/\n        .wp-block-cover,      \/* Cover blocks *\/\n        .wp-block-media-text  \/* Media-text blocks *\/\n    `);\n\n    \/\/ Apply the background color to each selected element\n    elementsToUpdate.forEach(element => {\n        element.style.backgroundColor = color;\n    });\n}\n\n      let zoomLevel = 1;\n        let fontSize = 16; \/\/ Default font size\n\n        function zoomIn() {\n\n            zoomLevel += 0.1;\n            document.body.style.transform = `scale(${zoomLevel})`;\n            document.body.style.transformOrigin = '0 0';\n        }\n\n        function zoomOut() {\n            zoomLevel = Math.max(zoomLevel - 0.1, 0.5); \/\/ Prevent zooming out too much\n            document.body.style.transform = `scale(${zoomLevel})`;\n            document.body.style.transformOrigin = '0 0';\n        }\n\n        function increaseFontSize() {\n            fontSize += 1;\n            document.querySelectorAll(\"*\").forEach(el => {\n                el.style.fontSize = `${fontSize}px`;\n            });\n        }\n\n        function decreaseFontSize() {\n            fontSize = Math.max(fontSize - 1, 10); \/\/ Prevent font size being too small\n            document.querySelectorAll(\"*\").forEach(el => {\n                el.style.fontSize = `${fontSize}px`;\n            });\n        }\n\n        function resetZoom() {\n            zoomLevel = 1;\n            document.body.style.transform = `scale(${zoomLevel})`;\n            document.body.style.transformOrigin = '0 0';\n        }\n\n        function resetFontSize() {\n            fontSize = 16;\n            document.querySelectorAll(\"*\").forEach(el => {\n                el.style.fontSize = \"\"; \/\/ Reset to default\n            });\n        }\n\n\n        function resetAll() {\n    resetZoom();\n    document.body.style = '';\n    const baseBackground = document.querySelector('has-base-background-color has-background,has-contrast-color has-base-background-color has-text-color has-background has-link-color has-fixed-layout');\n    if (baseBackground) baseBackground.style.backgroundColor = '';\n    resetFontSize();\n    refreshPage();\n}\n\nfunction refreshPage() {\n    location.reload();\n}\n\n\n\n        window.toggleKeyboard = function() {\n            const keyboard = document.getElementById('on-screen-keyboard');\n            if (keyboard) {\n                keyboard.style.display = keyboard.style.display === 'none' ? 'block' : 'none';\n            } else {\n                showOnScreenKeyboard();\n            }\n        };\n\n function showOnScreenKeyboard() {\n    let activeElement = null; \/\/ Track the currently active input, textarea, or link field\n\n    \/\/ Event listener to update active element on focus\n    document.querySelectorAll('input, textarea, a').forEach(element => {\n        element.addEventListener('focus', () => {\n            activeElement = element;\n        });\n    });\n\n    if (!document.getElementById('on-screen-keyboard')) {\n        const keyboard = document.createElement('div');\n        keyboard.id = 'on-screen-keyboard';\n\n        \/\/ Check if the user is on a mobile device\n        const isMobile = window.innerWidth <= 768; \/\/ Adjust the breakpoint as needed\n        const keysMarkup = isMobile\n            ? `\n                <div class=\"keyboard-header\">\n                    <span style=\"flex-grow: 1;\"><\/span>\n                    <button id=\"close-keyboard\" style=\"border: none; background: transparent; font-size: 18px; cursor: pointer;\">\u2716<\/button>\n                <\/div>\n                <div class=\"keyboard-container\">\n                    <div class=\"keyboard-row\">\n                        <button>Space<\/button>\n                    <\/div>\n                    <div class=\"keyboard-row\">\n                        <button>Tab<\/button><button>@<\/button>\n                        ${Array.from({ length: 26 }, (_, i) => `<button>${String.fromCharCode(97 + i)}<\/button>`).join('')}\n                    <\/div>\n                <\/div>`\n            : `\n                <div class=\"keyboard-header\">\n                    <span style=\"flex-grow: 1;\"><\/span>\n                    <button id=\"close-keyboard\" style=\"border: none; background: transparent; font-size: 18px; cursor: pointer;\">\u2716<\/button>\n                <\/div>\n                <div class=\"keyboard-container\">\n                    <div class=\"keyboard-row\">\n                        <button>@<\/button><button>1<\/button><button>2<\/button><button>3<\/button><button>4<\/button>\n                        <button>5<\/button><button>6<\/button><button>7<\/button><button>8<\/button><button>9<\/button><button>0<\/button><button>-<\/button><button>=<\/button><button>Backspace<\/button>\n                    <\/div>\n                    <div class=\"keyboard-row\">\n                        <button>Tab<\/button><button>q<\/button><button>w<\/button><button>e<\/button><button>r<\/button>\n                        <button>t<\/button><button>y<\/button><button>u<\/button><button>i<\/button><button>o<\/button><button>p<\/button><button>[<\/button><button>]<\/button><button>\\\\<\/button>\n                    <\/div>\n                    <div class=\"keyboard-row\">\n                        <button>Caps<\/button><button>a<\/button><button>s<\/button><button>d<\/button><button>f<\/button>\n                        <button>g<\/button><button>h<\/button><button>j<\/button><button>k<\/button><button>l<\/button><button>;<\/button><button>'<\/button><button>Enter<\/button>\n                    <\/div>\n                    <div class=\"keyboard-row\">\n                        <button>Shift<\/button><button>z<\/button><button>x<\/button><button>c<\/button><button>v<\/button>\n                        <button>b<\/button><button>n<\/button><button>m<\/button><button>,<\/button><button>.<\/button><button>\/<\/button><button>Shift<\/button>\n                    <\/div>\n                    <div class=\"keyboard-row\">\n                        <button>Ctrl<\/button><button>Space<\/button><button>Ctrl<\/button>\n                    <\/div>\n                <\/div>`;\n\n        keyboard.innerHTML = keysMarkup;\n\n        \/\/ PC Desktop Styling\n        if (!isMobile) {\n            keyboard.style.position = 'fixed';\n            keyboard.style.bottom = '20px';\n            keyboard.style.left = '25%';\n            keyboard.style.padding = '10px 15px';\n\n            keyboard.style.transform = 'translateY(0)';\n            keyboard.style.width = '90vw'; \/\/ Set width to 90% of viewport width for responsiveness\n            keyboard.style.maxWidth = '800px'; \/\/ Maximum width for larger screens\n            keyboard.style.backgroundColor = '#f0f0f0';\n            keyboard.style.border = '1px solid #ccc';\n            keyboard.style.borderRadius = '10px';\n            keyboard.style.boxShadow = '0px 2px 10px rgba(0, 0, 0, 0.2)';\n            keyboard.style.zIndex = '1000';\n            keyboard.style.display = 'block';\n            keyboard.style.padding = '10px';\n            keyboard.style.overflowX = 'auto'; \/\/ Allow horizontal scrolling if needed\n        }\n        \/\/ Mobile Styling\n        else {\n            keyboard.style.position = 'fixed';\n            keyboard.style.padding = '5px 5px';\n            keyboard.style.bottom = '180px';\n            keyboard.style.left = '5%';\n            keyboard.style.transform = 'translateY(-80%)';\n            keyboard.style.width = '90vw'; \/\/ Set width to 90% of viewport width for responsiveness\n            keyboard.style.maxWidth = '800px'; \/\/ Maximum width for larger screens\n            keyboard.style.backgroundColor = '#f0f0f0';\n            keyboard.style.border = '1px solid #ccc';\n            keyboard.style.borderRadius = '10px';\n            keyboard.style.boxShadow = '0px 2px 10px rgba(0, 0, 0, 0.2)';\n            keyboard.style.zIndex = '1000';\n            keyboard.style.display = 'block';\n            keyboard.style.padding = '5px';\n            keyboard.style.overflowX = 'auto'; \/\/ Allow horizontal scrolling if needed\n        }\n\n        const styles = `\n            #on-screen-keyboard {\n                box-sizing: border-box;\n            }\n            #on-screen-keyboard button {\n                margin: 5px;\n                font-size: 14px;\n                border: 1px solid #ccc;\n                border-radius: 5px;\n                cursor: pointer;\n                background-color: #fff;\n                flex: 1; \/\/ Allow buttons to grow and shrink\n            }\n            #on-screen-keyboard button:hover {\n                background-color: #e0e0e0;\n            }\n            #on-screen-keyboard button:active {\n                background-color: #ccc;\n            }\n            .keyboard-header {\n                display: flex;\n                justify-content: flex-end;\n                padding: 2px;\n                border-bottom: 1px solid #ccc;\n                background: #e0e0e0;\n                border-radius: 10px 10px 0 0;\n            }\n            .keyboard-container {\n                display: flex;\n                flex-direction: column;\n                align-items: center;\n            }\n            .keyboard-row {\n                display: flex;\n                justify-content: center;\n                width: 100%;\n                flex-wrap: wrap; \/\/ Allow wrapping to make it more responsive\n            }\n            .keyboard-row button {\n                flex: 1 1 auto; \/\/ Allow buttons to grow and shrink based on available space\n                min-width: 40px; \/\/ Minimum width to avoid too small buttons\n            }\n        `;\n\n        const style = document.createElement('style');\n        style.textContent = styles;\n        document.head.appendChild(style);\n\n        keyboard.querySelectorAll('.keyboard-container button').forEach(button => {\n            button.addEventListener('click', () => {\n                if (activeElement) {\n                    const key = button.textContent;\n\n                    if (key === 'Backspace') {\n                        activeElement.value = activeElement.value.slice(0, -1);\n                    } else if (key === 'Space') {\n                        activeElement.value += ' ';\n                    } else if (key === 'Tab') {\n                        const focusableElements = Array.from(document.querySelectorAll('input, textarea, a, button')).filter(el => el.tabIndex >= 0);\n                        const currentIndex = focusableElements.indexOf(activeElement);\n                        const nextIndex = (currentIndex + 1) % focusableElements.length;\n                        focusableElements[nextIndex].focus();\n                    } else if (key === 'Enter') {\n                        activeElement.value += '\\n';\n                    } else if (!['Shift', 'Ctrl', 'Alt', 'Caps'].includes(key)) {\n                        activeElement.value += key;\n                    }\n                    activeElement.focus();\n                }\n            });\n        });\n\n        keyboard.querySelector('#close-keyboard').addEventListener('click', () => {\n            keyboard.style.display = 'none';\n        });\n\n        document.body.appendChild(keyboard);\n    }\n}\n\n let hideImagesExecuted = false; \/\/ Flag to track if the function has already run\n\nfunction hideImagesShowAltText() {\n    if (hideImagesExecuted) return; \/\/ Exit if the function has already run\n\n    const images = document.querySelectorAll('img');\n    images.forEach(img => {\n        if (!img.alt) return;\n\n        const altText = document.createElement('span');\n        altText.textContent = img.alt;\n        altText.style.display = 'inline-block';\n        altText.style.margin = '5px';\n        img.parentNode.insertBefore(altText, img);\n        img.style.display = 'none';\n    });\n\n    hideImagesExecuted = true; \/\/ Set the flag to true after execution\n}\n\n      <\/script>\n<\/head>\n<body  style=\"font-family: Arial, sans-serif; margin: 20px;\">\n\n    <!-- Toggle Button -->\n    <button class=\"toggle-button\" onclick=\"toggleControls()\"><\/button>\n\n    <!-- Accessibility Controls Container -->\n    <div class=\"accessibility-controls-container\">\n        <!-- Accessibility Buttons -->\n        <div class=\"accessibility-buttons\">\n            <button onclick=\"zoomIn()\">+<\/button>\n            <button onclick=\"zoomOut()\">&#8211;<\/button>\n            <button onclick=\"increaseFontSize()\">A+<\/button>\n            <button onclick=\"decreaseFontSize()\">A-<\/button>\n            <button class=\"reset-button\" onclick=\"resetAll()\">Reset<\/button>\n\n             <button onclick=\"toggleKeyboard()\" style=\" width= 60px ; display: flex; justify-content: center; align-items: center;\">\n                <img decoding=\"async\" src=\"https:\/\/quasain-consultants.com\/wp-content\/uploads\/2024\/12\/keyboard.png\" alt=\"Keyboard\" style=\"max-width: 100%; max-height: 100%; object-fit: contain;\"><\/button>\n\n\n        <!-- Keyboard Button -->\n\n        <!-- Color Picker Toggle Button -->\n                           <button onclick=\"toggleColorPicker()\" style=\"margin-top: 10px;\">Color<\/button>\n\n\n                            <button onclick=\"hideImagesShowAltText()\" style=\" margin-top: 10px; width= 60px ; display: flex; justify-content: center; align-items: center;\">\n                            <img decoding=\"async\" src=\"https:\/\/cdn.iconscout.com\/icon\/premium\/png-256-thumb\/no-image-2840056-2359564.png\" alt=\"No Image\" style=\"max-width: 100%; max-height: 100%; object-fit: contain;\">\n<\/button>\n\n        <!-- Color Picker -->\n        <div class=\"color-picker-container\">\n            <button class=\"color-button light-yellow\" onclick=\"changeBackgroundColor('#ffffe0')\"><\/button>\n            <button class=\"color-button light-green\" onclick=\"changeBackgroundColor('#d3ffd3')\"><\/button>\n            <button class=\"color-button light-blue\" onclick=\"changeBackgroundColor('#add8e6')\"><\/button>\n            <button class=\"color-button light-orange\" onclick=\"changeBackgroundColor('#ffe4b5')\"><\/button>\n        <\/div>\n         <\/div>\n    <\/div>\n\n<\/body>\n<\/html>\n\n\n<h2 class=\"wp-block-heading has-text-align-center is-style-asterisk has-contrast-2-color has-text-color has-link-color wp-elements-5e6e85df0e4b838a3441aabf1bd0f832\" id=\"tech-sol\" style=\"margin-top:0;margin-bottom:var(--wp--preset--spacing--10)\"><strong>Technology-Based Solutions<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-25121f5f58933089bec64884092532d0\" style=\"color:#07768f\">Urdu\/Arabic PDF Screen Reader for Visually Impaired<\/h3>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:35% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"334\" height=\"489\" src=\"https:\/\/quasain-consultants.com\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-15-at-10.15.49-AM.jpeg\" alt=\"PDF_Screen_Illustration\" class=\"wp-image-443 size-full\" srcset=\"https:\/\/quasain-consultants.com\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-15-at-10.15.49-AM.jpeg 334w, https:\/\/quasain-consultants.com\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-15-at-10.15.49-AM-205x300.jpeg 205w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-medium-font-size\">People with disabilities find it difficult to read documents at times and require screen readers which are not common for languages like Arabic, Urdu etc. We have introduced a &#8216;PDF Screen Reader&#8217; application with language support of Arabic, Urdu and English. Screen Readers generally support a single language and may halt\/ skip words of other language, like overall text of a document is Arabic but names are mentioned in English. &#8216;PDF Screen Reader&#8217; adjusts accordingly without any delays and interruptions. Additional benefits include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Loading and viewing of the PDF file in the application.<\/li>\n\n\n\n<li>Zooming In\/Out options for visually impaired.<\/li>\n\n\n\n<li>Reading Speed variations for non-native language speakers.<\/li>\n\n\n\n<li>Displaying currently reading word with (x,y) coordinates for tracking of speech in PDF.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:36px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-532a8fb3ab73fb37b654354d743fbd88\" style=\"color:#07768f\">Independent Study Solution for Blind\/Dyslexic Students<\/h3>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<div class=\"wp-block-media-text is-stacked-on-mobile\" style=\"grid-template-columns:34% auto\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"878\" src=\"https:\/\/quasain-consultants.com\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-15-at-9.13.22-AM-1024x878.jpeg\" alt=\"QAUS\" class=\"wp-image-439 size-full\" srcset=\"https:\/\/quasain-consultants.com\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-15-at-9.13.22-AM-1024x878.jpeg 1024w, https:\/\/quasain-consultants.com\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-15-at-9.13.22-AM-300x257.jpeg 300w, https:\/\/quasain-consultants.com\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-15-at-9.13.22-AM-768x659.jpeg 768w, https:\/\/quasain-consultants.com\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-15-at-9.13.22-AM-1536x1317.jpeg 1536w, https:\/\/quasain-consultants.com\/wp-content\/uploads\/2025\/09\/WhatsApp-Image-2025-09-15-at-9.13.22-AM.jpeg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p class=\"has-medium-font-size\">In the modern era of technological advancements, students need to keep themselves up-to-date. However, students with disabilities need additional efforts under supervision of mentors. In this regard, QAUS helps students to study independently and are not bounded to the boundaries of the traditional classrooms. Benefits are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Accessing uploaded materials from anywhere <\/li>\n\n\n\n<li>Throughout audio support and guidance.<\/li>\n\n\n\n<li>Timer based MCQs based self assessment .<\/li>\n\n\n\n<li>Automatic checking of assessment with already provided answers and displaying of results with graphs. <\/li>\n<\/ul>\n\n\n\n<div style=\"height:36px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div><\/div>\n<\/div>\n\n\n\n<div style=\"height:45px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull has-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-top-left-radius:40px;border-top-right-radius:40px;border-top-color:#87ceeb;border-top-width:2px;border-right-color:#87ceeb;border-right-width:4px;border-bottom-style:none;border-bottom-width:0px;border-left-color:#87ceeb;border-left-width:4px;background-color:#cae8f7;min-height:0px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--10);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--10)\">\n<div class=\"wp-block-group alignwide is-horizontal is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-c8399cba wp-block-group-is-layout-flex\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:var(--wp--preset--spacing--40);padding-bottom:0;padding-left:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-group is-layout-flex wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-large is-resized has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"213\" src=\"https:\/\/quasain-consultants.com\/wp-content\/uploads\/2024\/12\/logo-1-1024x213.png\" alt=\"logo\" class=\"wp-image-187\" style=\"border-radius:23px;width:212px;height:auto\" srcset=\"https:\/\/quasain-consultants.com\/wp-content\/uploads\/2024\/12\/logo-1-1024x213.png 1024w, https:\/\/quasain-consultants.com\/wp-content\/uploads\/2024\/12\/logo-1-300x62.png 300w, https:\/\/quasain-consultants.com\/wp-content\/uploads\/2024\/12\/logo-1-768x160.png 768w, https:\/\/quasain-consultants.com\/wp-content\/uploads\/2024\/12\/logo-1-1536x319.png 1536w, https:\/\/quasain-consultants.com\/wp-content\/uploads\/2024\/12\/logo-1.png 1650w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<p class=\"has-contrast-color has-text-color has-link-color wp-elements-46994fddf5d1fb4dbed6d2a5a09686ca\" style=\"font-size:0.8rem\">\u00a9 Copyright 2022 <strong>Quasain Consultants (QC)<\/strong><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Technology-Based Solutions Urdu\/Arabic PDF Screen Reader for Visually Impaired People with disabilities find it difficult to read documents at times and require screen readers which are not common for languages like Arabic, Urdu etc. We have introduced a &#8216;PDF Screen Reader&#8217; application with language support of Arabic, Urdu and English. Screen Readers generally support a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-no-title","meta":{"footnotes":""},"class_list":["post-367","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/quasain-consultants.com\/index.php?rest_route=\/wp\/v2\/pages\/367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quasain-consultants.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/quasain-consultants.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/quasain-consultants.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/quasain-consultants.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=367"}],"version-history":[{"count":12,"href":"https:\/\/quasain-consultants.com\/index.php?rest_route=\/wp\/v2\/pages\/367\/revisions"}],"predecessor-version":[{"id":440,"href":"https:\/\/quasain-consultants.com\/index.php?rest_route=\/wp\/v2\/pages\/367\/revisions\/440"}],"wp:attachment":[{"href":"https:\/\/quasain-consultants.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}