\n```\n\n## Advanced Focus Management Techniques {#advanced-techniques}\n\n### 1. Use Navigation Landmarks\n\nImplement proper ARIA landmarks to help screen readers understand the page structure:\n\n```html\n\n \n \n\n\n Match \n \n \n```\n\nAccording to the [VA.gov team's solution](https://github.com/department-of-veterans-affairs/va.gov-team/issues/319), \"It appears this can be remediated by setting focus on the breadcrumb element instead of the .\"\n\n### 2. Implement Progressive Enhancement\n\nEnsure the heading content is available before setting focus:\n\n```html\n\n Match\n \n\n\n```\n\n### 3. Use JAWS-Specific Focus Management\n\nFor JAWS-specific handling, consider adding a brief delay after the redirect before setting focus:\n\n```javascript\nfunction focusOnUploadedText() {\n const focElem = element.value.querySelector('.phw-s-match-link-text');\n \n // JAWS often needs more time after redirect\n setTimeout(() => {\n focElem && focElem.focus();\n \n // Additional announcement for JAWS\n focElem.setAttribute('aria-live', 'polite');\n setTimeout(() => {\n focElem.removeAttribute('aria-live');\n }, 1000);\n }, 300); // Increased delay for JAWS\n}\n```\n\n## Asynchronous Content Loading {#async-content}\n\nThe asynchronous loading of your widget significantly impacts the issue. Here's a robust solution:\n\n### 1. Content-First Approach\n\nLoad content before redirecting:\n\n```javascript\nasync function navigateToPageB() {\n // Pre-load content\n await loadMatchContent();\n \n // Then redirect\n window.location.href = 'pageB';\n}\n\nfunction loadMatchContent() {\n return new Promise((resolve) => {\n fetch('/api/match-data')\n .then(response => response.json())\n .then(data => {\n // Store data for page B\n sessionStorage.setItem('matchData', JSON.stringify(data));\n resolve();\n });\n });\n}\n```\n\nOn Page B:\n```javascript\ndocument.addEventListener('DOMContentLoaded', () => {\n const matchData = JSON.parse(sessionStorage.getItem('matchData'));\n if (matchData) {\n displayMatchContent(matchData);\n focusOnUploadedText();\n }\n});\n```\n\n### 2. Client-Side Navigation\n\nConsider using client-side routing instead of full page redirects:\n\n```javascript\nfunction navigateToPageB() {\n // Load content dynamically\n fetchPageContent('pageB').then(html => {\n document.body.innerHTML = html;\n \n // Set focus after DOM is ready\n setTimeout(() => {\n const focElem = document.querySelector('.phw-s-match-link-text');\n focElem && focElem.focus();\n }, 100);\n });\n}\n```\n\n## Testing and Validation {#testing-validation}\n\n### 1. JAWS Configuration\n\nEnsure JAWS is properly configured for your application. Users may need to:\n- Disable \"Auto Forms Mode\" for your specific site\n- Adjust Virtual Cursor settings\n- Update to the latest JAWS version\n\n### 2. Cross-Screen Reader Testing\n\nTest across all major screen readers:\n- JAWS (latest version)\n- NVDA (latest version)\n- VoiceOver (macOS/iOS)\n- TalkBack (Android)\n\n### 3. Automated Testing\n\nUse automated accessibility tools to verify focus management:\n- Axe-core\n- WAVE\n- Lighthouse accessibility audits\n\n### 4. User Testing\n\nConduct user testing with actual JAWS users to validate solutions. The [Stack Overflow discussion](https://stackoverflow.com/questions/55496792/jaws-screen-reader-continues-reading-other-elements-after-tabbing-to-first-eleme) highlights that \"If you move the focus to a specific element when the page loads, JAWS will likely read the page from that point to the bottom. This is expected behaviour, and most users will know how to stop JAWS from reading.\"\n\n## Conclusion {#conclusion}\n\nFixing JAWS screen reader focus issues after redirects requires understanding JAWS's unique interaction patterns. The key solutions include using interactive elements instead of headings, implementing proper focus timing, adding screen reader announcements, and ensuring content is available before setting focus. For complex applications, consider client-side navigation or pre-loading content to provide a more predictable experience across all screen readers. Remember that user testing with actual JAWS users remains the most reliable validation method for accessibility solutions.\n\n## Sources {#sources}\n\n- [Stack Overflow: JAWS screen reader continues reading other elements after tabbing](https://stackoverflow.com/questions/55496792/jaws-screen-reader-continues-reading-other-elements-after-tabbing-to-first-eleme)\n- [FreedomScientific: Non-interactive content loses virtual focus](https://github.com/FreedomScientific/standards-support/issues/701)\n- [VA.gov: JAWS + Chrome enables focus mode](https://github.com/department-of-veterans-affairs/va.gov-team/issues/319)\n- [Tink.uk: Understanding screen reader interaction modes](https://tink.uk/understanding-screen-reader-interaction-modes/)\n- [Accessibility Developer Guide: Browse and focus modes](https://www.accessibility-developer-guide.com/knowledge/screen-readers/desktop/browse-focus-modes/)"},{"@type":"QAPage","@context":"https://schema.org","mainEntity":{"name":"How to fix JAWS screen reader reading entire page after redirect when focus is programmatically set to a heading?","text":"I'm experiencing an accessibility issue where JAWS screen reader reads the entire page content after a redirect, even when focus is programmatically moved to a specific heading. This behavior differs from NVDA and VoiceOver which correctly announce only the focused heading.","@type":"Question","acceptedAnswer":{"text":"When JAWS screen reader reads the entire page content after a redirect despite programmatic focus being set to a specific heading, this is a known accessibility issue related to JAWS's interaction behavior after page loads. To resolve this, you need to implement proper focus management techniques that account for JAWS's specific handling of virtual cursor focus after redirects.","@type":"Answer","upvoteCount":1,"dateCreated":"2025-12-24T16:05:47.807Z","datePublished":"2025-12-24T16:05:47.807Z","dateModified":"2025-12-24T16:05:47.807Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"url":"https://neuroanswers.net/c/web/q/jaws-screen-reader-focus-management-redirect/#message-8fbc36d8-a4d2-4ed3-824f-215e1035ae2e"},"@id":"https://neuroanswers.net/c/web/q/jaws-screen-reader-focus-management-redirect","answerCount":1,"dateCreated":"2025-12-24T16:05:47.807Z","datePublished":"2025-12-24T16:05:47.807Z","dateModified":"2025-12-24T16:05:47.807Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}]},"mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/jaws-screen-reader-focus-management-redirect"},"inLanguage":"en","dateCreated":"2025-12-24T16:05:47.807Z","datePublished":"2025-12-24T16:05:47.807Z","dateModified":"2025-12-24T16:05:47.807Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"@id":"https://neuroanswers.net/c/web/q/jaws-screen-reader-focus-management-redirect"},{"@type":"CollectionPage","@id":"https://neuroanswers.net/c/web/q/jaws-screen-reader-focus-management-redirect/#related-questions","name":"JAWS Screen Reader Focus Management After Redirect","description":"Fix JAWS screen reader reading entire page after redirect when focus is set to heading. Learn proper focus management techniques for web accessibility.","url":"https://neuroanswers.net/c/web/q/jaws-screen-reader-focus-management-redirect","inLanguage":"en","mainEntity":{"@type":"ItemList","@id":"https://neuroanswers.net/c/web/q/jaws-screen-reader-focus-management-redirect/#related-questions","itemListElement":[{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/bitrix-sale-order-ajax-persist-api-prices","name":"Bitrix sale.order.ajax: Persist API Recalculated Prices","position":1,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/bitrix-sale-order-ajax-persist-api-prices","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/bitrix-sale-order-ajax-persist-api-prices"},"inLanguage":"en","dateCreated":"2026-01-03T11:52:03.410Z","datePublished":"2026-01-03T11:52:03.410Z","dateModified":"2026-01-03T11:52:03.410Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"Bitrix sale.order.ajax: Persist API Recalculated Prices","description":"Learn how to ensure external API recalculated prices persist to orders in custom bitrix:sale.order.ajax templates using OnSaleOrderBeforeSaved, OnSaleComponentOrderCreated events, RECREATE_ORDER flag, and server-side handlers for D7 Order/Basket.","keywords":["bitrix sale order ajax","bitrix order","bitrix events","onsaleorderbeforesaved","onsalecomponentordercreated","bitrix d7 order","recreate_order","bitrix basket prices","bitrix sale order"],"image":[],"articleBody":""}},{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/why-not-use-html-tables-for-layout-css-grid-flexbox","name":"Why Avoid HTML Tables for Layout: CSS Grid & Flexbox","position":2,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/why-not-use-html-tables-for-layout-css-grid-flexbox","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/why-not-use-html-tables-for-layout-css-grid-flexbox"},"inLanguage":"en","dateCreated":"2026-01-28T17:35:21.258Z","datePublished":"2026-01-28T17:35:21.258Z","dateModified":"2026-01-28T17:35:21.258Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"Why Avoid HTML Tables for Layout: CSS Grid & Flexbox","description":"Discover valid arguments against using HTML tables for layout, including accessibility issues and poor performance. Learn modern CSS best practices with Grid, Flexbox, and semantic HTML for responsive web design.","keywords":["html tables layout","css grid","flexbox","semantic html","modern css layout","web accessibility","responsive design","css grid template areas","flexbox alignment"],"image":[],"articleBody":""}},{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/make-div-not-larger-than-contents","name":"How to Make a Div Not Larger Than Its Contents","position":3,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/make-div-not-larger-than-contents","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/make-div-not-larger-than-contents"},"inLanguage":"en","dateCreated":"2025-10-25T07:33:56.547Z","datePublished":"2025-10-25T07:33:56.547Z","dateModified":"2026-01-02T08:14:36.838Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"How to Make a Div Not Larger Than Its Contents","description":"Learn CSS techniques to make a div fit its content width, like inline-block, display: table, or width: fit-content. Perfect for wrapping tables without expanding. Includes browser support and examples.","keywords":["div width","fit content","css div","width fit content","table width","display inline-block","div fit content","css div width","table fit content","shrink to fit"],"image":[],"articleBody":""}},{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/how-to-iterate-javascript-object-parts-for-loops","name":"How to Iterate Over JavaScript Objects in Parts Using For Loops","position":4,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/how-to-iterate-javascript-object-parts-for-loops","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/how-to-iterate-javascript-object-parts-for-loops"},"inLanguage":"en","dateCreated":"2026-01-21T10:48:04.361Z","datePublished":"2026-01-21T10:48:04.361Z","dateModified":"2026-01-21T10:48:04.361Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"How to Iterate Over JavaScript Objects in Parts Using For Loops","description":"Learn efficient techniques to iterate through JavaScript object properties in chunks using Object.keys(), Object.entries(), and custom chunked iteration methods.","keywords":["javascript objects","javascript object iteration","javascript object properties","javascript object keys","javascript object values","javascript object foreach","javascript json object","javascript object function","object iteration","chunked iteration","for loops"],"image":[],"articleBody":""}},{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/rest-api-error-handling-best-practices","name":"REST API Error Handling Best Practices: JSON XML Quota Limits","position":5,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/rest-api-error-handling-best-practices","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/rest-api-error-handling-best-practices"},"inLanguage":"en","dateCreated":"2026-01-26T10:06:40.249Z","datePublished":"2026-01-26T10:06:40.249Z","dateModified":"2026-01-26T14:31:07.399Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"REST API Error Handling Best Practices: JSON XML Quota Limits","description":"Comprehensive guide to REST API error handling with proper HTTP status codes, JSON/XML response formats, and storage quota management for client-friendly applications.","keywords":["REST API error handling","API error codes","429 too many requests","HTTP status codes","JSON error response","XML error response","API quota exceeded","exponential backoff","client-friendly error handling"],"image":[],"articleBody":""}},{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/efficient-js-clone-object-deep-clone","name":"Most Efficient JS Clone Object: Deep Clone Guide","position":6,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/efficient-js-clone-object-deep-clone","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/efficient-js-clone-object-deep-clone"},"inLanguage":"en","dateCreated":"2025-10-20T09:20:17.294Z","datePublished":"2025-10-20T09:20:17.294Z","dateModified":"2026-01-10T07:50:57.506Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"Most Efficient JS Clone Object: Deep Clone Guide","description":"Learn the most efficient way to deep clone objects in JavaScript with structuredClone(). Beats JSON.parse(JSON.stringify()) on speed, handles circular refs. Compare Lodash cloneDeep, performance benchmarks, and best practices for js clone object.","keywords":["js clone object","javascript clone","javascript clone object","deep clone javascript","structuredclone","lodash clonedeep","object cloning javascript"],"image":[],"articleBody":""}},{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/form-reloads-despite-preventdefault-fix","name":"Why Form Reloads Despite event.preventDefault() Fix","position":7,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/form-reloads-despite-preventdefault-fix","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/form-reloads-despite-preventdefault-fix"},"inLanguage":"en","dateCreated":"2026-01-09T10:28:35.643Z","datePublished":"2026-01-09T10:28:35.643Z","dateModified":"2026-01-09T10:28:35.643Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"Why Form Reloads Despite event.preventDefault() Fix","description":"Fix page reload on form submit even with event.preventDefault() on button click. Learn to use form submit event listener, handle Enter key, programmatic submit, and debugging steps for reliable prevention.","keywords":["preventdefault","event preventdefault","preventdefault javascript","addeventlistener preventdefault","form submit preventdefault","javascript form submit","prevent form submission","e preventdefault","click preventdefault"],"image":[],"articleBody":""}},{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/html-minlength-attribute-why-not-working-alternatives","name":"HTML minlength Attribute: Does It Exist & Why It Fails","position":8,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/html-minlength-attribute-why-not-working-alternatives","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/html-minlength-attribute-why-not-working-alternatives"},"inLanguage":"en","dateCreated":"2026-01-29T16:46:12.796Z","datePublished":"2026-01-29T16:46:12.796Z","dateModified":"2026-01-29T16:46:12.796Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"HTML minlength Attribute: Does It Exist & Why It Fails","description":"Yes, HTML5 has minlength for input fields like text and password. Learn why minlength validation might not work (wrong types, no required), browser support, and alternatives like pattern regex, min attribute, or JavaScript setCustomValidity for robust form checks.","keywords":["html minlength","minlength attribute","input minlength","minlength not working","html form validation","pattern attribute","browser support minlength","javascript validation","html input validation","minlength alternatives"],"image":[],"articleBody":""}},{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/how-to-convert-image-to-grayscale-html-css","name":"Convert Image to Grayscale with CSS Filter HTML","position":9,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/how-to-convert-image-to-grayscale-html-css","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/how-to-convert-image-to-grayscale-html-css"},"inLanguage":"en","dateCreated":"2026-01-25T16:20:58.124Z","datePublished":"2026-01-25T16:20:58.124Z","dateModified":"2026-01-25T16:20:58.124Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"Convert Image to Grayscale with CSS Filter HTML","description":"Learn how to convert any image to grayscale using only CSS filter property. Simple HTML/CSS method with browser support for Firefox 3+, Safari 3+. Includes hover effects, prefixes, and background image tips for filter css and css grayscale.","keywords":["filter css","css grayscale","grayscale css","css filter grayscale","css image filters","html css filter","css filter color","backdrop filter css"],"image":[],"articleBody":""}},{"@type":"ListItem","@id":"https://neuroanswers.net/c/web/q/fix-bootstrap-collapse-stuck-collapsing","name":"Fix Bootstrap Collapse Stuck in Collapsing State","position":10,"item":{"@type":"Article","@id":"https://neuroanswers.net/c/web/q/fix-bootstrap-collapse-stuck-collapsing","mainEntityOfPage":{"@type":"WebPage","@id":"https://neuroanswers.net/c/web/q/fix-bootstrap-collapse-stuck-collapsing"},"inLanguage":"en","dateCreated":"2026-01-02T10:36:54.741Z","datePublished":"2026-01-02T10:36:54.741Z","dateModified":"2026-01-02T10:36:54.741Z","author":[{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}}],"publisher":{"@type":"Organization","@id":"https://neuroanswers.net/about","name":"NeuroAnswers","url":"https://neuroanswers.net/about","logo":{"@type":"ImageObject","url":"https://neuroanswers.net/logo.png","width":"512","height":"512"}},"headline":"Fix Bootstrap Collapse Stuck in Collapsing State","description":"Troubleshoot and fix Bootstrap collapse stuck in 'collapsing' state, failing to hide. Covers duplicate JS, position absolute, floats, event handlers, and initialization issues for reliable Bootstrap navbar collapse and Bootstrap 3 collapse fixes.","keywords":["bootstrap collapse","bootstrap navbar collapse","bootstrap 3 collapse","bootstrap collapse stuck","collapsing state","bootstrap collapse not working","bootstrap collapse hide"],"image":[],"articleBody":""}}]}}]}