From 094c4c29ccca22e5a60bbf104c04a1f6979949c3 Mon Sep 17 00:00:00 2001 From: Saivikash Lankalapalli_C Date: Tue, 7 Apr 2026 14:43:55 +0530 Subject: [PATCH 01/40] Ask Ingredion styling fix --- blocks/header/header.css | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/blocks/header/header.css b/blocks/header/header.css index c1cbae0b..c7119193 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1007,3 +1007,21 @@ header nav.category > ul:nth-child(3) > li { padding: 0 4.25rem; } } + +header +a[href="https://asktest-usca.ingredion.com"], +header + a[href="https://asktest-emea.ingredion.com"] { + color: inherit !important; + text-decoration: none !important; + font-weight: 500; +} + +header +a[href="https://asktest-usca.ingredion.com"]:hover, +header +a[href="https://asktest-emea.ingredion.com"]:hover { + color: inherit !important; + text-decoration: none !important; +} + \ No newline at end of file From bcb750eccf2f23c0514ec4300bb5bf58528c6fea Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Tue, 7 Apr 2026 14:54:55 +0530 Subject: [PATCH 02/40] Update header.css ask ingredion link fix --- blocks/header/header.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index c7119193..b4aa23f9 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1008,6 +1008,7 @@ header nav.category > ul:nth-child(3) > li { } } +/*Ask Ingredion link fix */ header a[href="https://asktest-usca.ingredion.com"], header @@ -1024,4 +1025,4 @@ a[href="https://asktest-emea.ingredion.com"]:hover { color: inherit !important; text-decoration: none !important; } - \ No newline at end of file + From 21966767448c872ff4c49728bc0e71636467b94d Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 23 Apr 2026 14:09:05 +0530 Subject: [PATCH 03/40] Update header.js open Ask Ingredion in a new tab for public users --- blocks/header/header.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/blocks/header/header.js b/blocks/header/header.js index ecd676bc..23270bb6 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -731,4 +731,11 @@ export default async function decorate(block) { handleView(); isMobile.addEventListener('change', handleView); + // + setTimeout(() => { + document.querySelectorAll('a[title="Ask Ingredion"]').forEach(link => { + link.setAttribute('target', '_blank'); + link.setAttribute('rel', 'noopener noreferrer'); + }); + }, 500); } From 971ed65e409e9cbd1c4c1313fdb5d54bdc8cefd5 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 23 Apr 2026 14:33:49 +0530 Subject: [PATCH 04/40] Update header.js Requirement: "Ask Ingredion" should opens in a new tab --- blocks/header/header.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 23270bb6..ba247e80 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -726,16 +726,15 @@ export default async function decorate(block) { $navCategory.cloneNode(true), ); await buildDropdownsDesktop($header); + // Ensure "Ask Ingredion" opens in a new tab +const askLink = $header.querySelector('a[title="Ask Ingredion"]'); +if (askLink) { + askLink.setAttribute('target', '_blank'); + askLink.setAttribute('rel', 'noopener noreferrer'); +} } } handleView(); isMobile.addEventListener('change', handleView); - // - setTimeout(() => { - document.querySelectorAll('a[title="Ask Ingredion"]').forEach(link => { - link.setAttribute('target', '_blank'); - link.setAttribute('rel', 'noopener noreferrer'); - }); - }, 500); } From 0cde6abca9c4eeb974801ca286abd94e2b942d25 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 23 Apr 2026 14:44:32 +0530 Subject: [PATCH 05/40] Update header.js ask ingredion opens in a new tab --- blocks/header/header.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index ba247e80..00a46528 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -726,12 +726,15 @@ export default async function decorate(block) { $navCategory.cloneNode(true), ); await buildDropdownsDesktop($header); - // Ensure "Ask Ingredion" opens in a new tab -const askLink = $header.querySelector('a[title="Ask Ingredion"]'); -if (askLink) { - askLink.setAttribute('target', '_blank'); - askLink.setAttribute('rel', 'noopener noreferrer'); -} + // Ensure "Ask Ingredion" opens in a new tab (handles dynamic render) +setTimeout(() => { + const askLink = $header.querySelector('a[title="Ask Ingredion"]'); + if (askLink) { + askLink.setAttribute('target', '_blank'); + askLink.setAttribute('rel', 'noopener noreferrer'); + } +}, 500); + } } From 49b54f5c1cf5e2b2337073f1bb18d99091b29766 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 23 Apr 2026 14:51:26 +0530 Subject: [PATCH 06/40] Update header.js ask ingredion opens ion new tab --- blocks/header/header.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 00a46528..29385116 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -734,7 +734,14 @@ setTimeout(() => { askLink.setAttribute('rel', 'noopener noreferrer'); } }, 500); - + // Force "Ask Ingredion" to always open in new tab +$header.addEventListener('click', (e) => { + const link = e.target.closest('a[title="Ask Ingredion"]'); + if (link) { + e.preventDefault(); + window.open(link.href, '_blank'); + } +}); } } From d3fdec1fbafdbe7bf733cc0e92998b59b0bb1ae8 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 23 Apr 2026 15:09:50 +0530 Subject: [PATCH 07/40] Update header.js ask ingredion opens in new tab --- blocks/header/header.js | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 29385116..bbb52850 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -726,22 +726,16 @@ export default async function decorate(block) { $navCategory.cloneNode(true), ); await buildDropdownsDesktop($header); - // Ensure "Ask Ingredion" opens in a new tab (handles dynamic render) -setTimeout(() => { - const askLink = $header.querySelector('a[title="Ask Ingredion"]'); - if (askLink) { - askLink.setAttribute('target', '_blank'); - askLink.setAttribute('rel', 'noopener noreferrer'); - } -}, 500); - // Force "Ask Ingredion" to always open in new tab -$header.addEventListener('click', (e) => { + $header.addEventListener('click', (e) => { const link = e.target.closest('a[title="Ask Ingredion"]'); if (link) { e.preventDefault(); - window.open(link.href, '_blank'); + e.stopPropagation(); + e.stopImmediatePropagation(); + + window.open(link.href, '_blank', 'noopener,noreferrer'); } -}); +}, true); } } From 6c8e4cdc31464d132d04309a78ba01b5e3beb88b Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 23 Apr 2026 15:13:45 +0530 Subject: [PATCH 08/40] Update header.js ask ingredion --- blocks/header/header.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index bbb52850..c8c4bbe6 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -727,7 +727,11 @@ export default async function decorate(block) { ); await buildDropdownsDesktop($header); $header.addEventListener('click', (e) => { - const link = e.target.closest('a[title="Ask Ingredion"]'); + const anchor = e.target.closest('a'); + const link = anchor && anchor.getAttribute('title') === 'Ask Ingredion' + ? anchor + : null; + if (link) { e.preventDefault(); e.stopPropagation(); From 7c320437067a5aaf2646493b70eed6b5e7cd9e8e Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 23 Apr 2026 15:17:23 +0530 Subject: [PATCH 09/40] Update header.js --- blocks/header/header.js | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index c8c4bbe6..df6e4742 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -726,20 +726,14 @@ export default async function decorate(block) { $navCategory.cloneNode(true), ); await buildDropdownsDesktop($header); - $header.addEventListener('click', (e) => { - const anchor = e.target.closest('a'); - const link = anchor && anchor.getAttribute('title') === 'Ask Ingredion' - ? anchor - : null; + // Force "Ask Ingredion" link to open in new tab (DOM-level fix) +const askLink = [...$header.querySelectorAll('a')] + .find(a => a.textContent.trim() === 'Ask Ingredion'); - if (link) { - e.preventDefault(); - e.stopPropagation(); - e.stopImmediatePropagation(); - - window.open(link.href, '_blank', 'noopener,noreferrer'); - } -}, true); +if (askLink) { + askLink.target = '_blank'; + askLink.rel = 'noopener noreferrer'; +} } } From 71949d646d93124343918d13cebca51d8da7bfb8 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 23 Apr 2026 15:30:18 +0530 Subject: [PATCH 10/40] Update header.js Update header to open "Ask Ingredion" link in a new tab as per business requirement -Ensured link opens in separate tab for AI Agent interaction -Applied post header render to avoid override from dynamic navigation behavior --- blocks/header/header.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index df6e4742..9ea37178 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -726,9 +726,11 @@ export default async function decorate(block) { $navCategory.cloneNode(true), ); await buildDropdownsDesktop($header); - // Force "Ask Ingredion" link to open in new tab (DOM-level fix) +// Ensure "Ask Ingredion" link opens in a new tab +// This is required as per business requirement for AI Agent to open separately +// Applied after header render to avoid override from AEM/EDS dynamic behavior const askLink = [...$header.querySelectorAll('a')] - .find(a => a.textContent.trim() === 'Ask Ingredion'); + .find(a => a.textContent.includes('Ask Ingredion')); if (askLink) { askLink.target = '_blank'; From 2f60f0578c790ce9eb8a718167667d0125817e82 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 1 May 2026 15:25:37 +0530 Subject: [PATCH 11/40] Update header.css Ask Ingredion prod URL is bolded as remaining header tabs --- blocks/header/header.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index b4aa23f9..2125e5de 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1019,9 +1019,9 @@ header } header -a[href="https://asktest-usca.ingredion.com"]:hover, +a[href="https://ask-usca.ingredion.com"]:hover, header -a[href="https://asktest-emea.ingredion.com"]:hover { +a[href="https://ask-emea.ingredion.com"]:hover { color: inherit !important; text-decoration: none !important; } From 9449cfcf31121954b2858770123fdf9b42fbd5d6 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 1 May 2026 15:29:39 +0530 Subject: [PATCH 12/40] Update header.css Ask Ingredion URL update to look like remaining tabs --- blocks/header/header.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index 2125e5de..0569e16b 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1019,9 +1019,9 @@ header } header -a[href="https://ask-usca.ingredion.com"]:hover, +a[href="ask-usca.ingredion.com"]:hover, header -a[href="https://ask-emea.ingredion.com"]:hover { +a[href="ask-emea.ingredion.com"]:hover { color: inherit !important; text-decoration: none !important; } From 15c287fae47d4acc37613226f2d795f2f6d8160a Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 1 May 2026 15:34:20 +0530 Subject: [PATCH 13/40] Update header.css Ask Ingredion URL update to look like remaining tabs --- blocks/header/header.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index 0569e16b..e315c0cb 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1019,9 +1019,9 @@ header } header -a[href="ask-usca.ingredion.com"]:hover, +a[href="http://ask-usca.ingredion.com"]:hover, header -a[href="ask-emea.ingredion.com"]:hover { +a[href="http://ask-emea.ingredion.com"]:hover { color: inherit !important; text-decoration: none !important; } From a72d92299c513c188d98242ee9542b18d956d8b4 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 1 May 2026 15:36:20 +0530 Subject: [PATCH 14/40] Update header.css Ask Ingredion URL update to look like remaining tabs --- blocks/header/header.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index e315c0cb..2125e5de 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1019,9 +1019,9 @@ header } header -a[href="http://ask-usca.ingredion.com"]:hover, +a[href="https://ask-usca.ingredion.com"]:hover, header -a[href="http://ask-emea.ingredion.com"]:hover { +a[href="https://ask-emea.ingredion.com"]:hover { color: inherit !important; text-decoration: none !important; } From a2fde49717215d7d4109d930d7dfadc6fa63624e Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 1 May 2026 15:40:32 +0530 Subject: [PATCH 15/40] Update header.css Ask Ingredion Link fix --- blocks/header/header.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index 2125e5de..e18480af 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1010,9 +1010,9 @@ header nav.category > ul:nth-child(3) > li { /*Ask Ingredion link fix */ header -a[href="https://asktest-usca.ingredion.com"], +a[href="https://ask-usca.ingredion.com"], header - a[href="https://asktest-emea.ingredion.com"] { + a[href="https://ask-emea.ingredion.com"] { color: inherit !important; text-decoration: none !important; font-weight: 500; From 869d1083a59455e8de2559fd54dab0961c1cd7a8 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Wed, 13 May 2026 18:22:31 +0530 Subject: [PATCH 16/40] Update header.css updates ask ingredion test url's --- blocks/header/header.css | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index e18480af..deb1f554 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1011,8 +1011,12 @@ header nav.category > ul:nth-child(3) > li { /*Ask Ingredion link fix */ header a[href="https://ask-usca.ingredion.com"], +header +a[href="https://asktest-usca.ingredion.com"], +header + a[href="https://ask-emea.ingredion.com"], header - a[href="https://ask-emea.ingredion.com"] { + a[href="https://asktest-emea.ingredion.com"]{ color: inherit !important; text-decoration: none !important; font-weight: 500; @@ -1021,7 +1025,11 @@ header header a[href="https://ask-usca.ingredion.com"]:hover, header -a[href="https://ask-emea.ingredion.com"]:hover { +a[href="https://asktest-usca.ingredion.com"]:hover, +header +a[href="https://ask-emea.ingredion.com"]:hover, +header +a[href="https://asktest-emea.ingredion.com"]:hover{ color: inherit !important; text-decoration: none !important; } From a8f916eb559fd69adc59b78e8a8d0fcaa34945af Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 11:46:05 +0530 Subject: [PATCH 17/40] Update header.js Update Ask Ingredion link behavior and hover tooltip --- blocks/header/header.js | 1 + 1 file changed, 1 insertion(+) diff --git a/blocks/header/header.js b/blocks/header/header.js index 9ea37178..172bc34f 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -735,6 +735,7 @@ const askLink = [...$header.querySelectorAll('a')] if (askLink) { askLink.target = '_blank'; askLink.rel = 'noopener noreferrer'; + askLink.title = 'Ask Ingredion for Solution Recommendations'; } } } From 4221615a5fdc96bc5d715660ad2b59d9c60adf3f Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 11:55:33 +0530 Subject: [PATCH 18/40] Update header.css Ask Ingredion hover change --- blocks/header/header.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index deb1f554..74f9f6c8 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1029,8 +1029,7 @@ a[href="https://asktest-usca.ingredion.com"]:hover, header a[href="https://ask-emea.ingredion.com"]:hover, header -a[href="https://asktest-emea.ingredion.com"]:hover{ - color: inherit !important; +a[href="https://asktest-emea.ingredion.com"]:hover text-decoration: none !important; } From 11b5d73041ddd9d357bed8b2678c559849012487 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 11:59:09 +0530 Subject: [PATCH 19/40] Update header.css --- blocks/header/header.css | 1 - 1 file changed, 1 deletion(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index 74f9f6c8..ce2371d5 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1017,7 +1017,6 @@ header a[href="https://ask-emea.ingredion.com"], header a[href="https://asktest-emea.ingredion.com"]{ - color: inherit !important; text-decoration: none !important; font-weight: 500; } From be120ecab93f1f15bb0627c149d14f8c0065e9a4 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 12:02:09 +0530 Subject: [PATCH 20/40] Update header.css --- blocks/header/header.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index ce2371d5..ea00560b 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1017,6 +1017,7 @@ header a[href="https://ask-emea.ingredion.com"], header a[href="https://asktest-emea.ingredion.com"]{ + color: inherit !important; text-decoration: none !important; font-weight: 500; } @@ -1028,7 +1029,7 @@ a[href="https://asktest-usca.ingredion.com"]:hover, header a[href="https://ask-emea.ingredion.com"]:hover, header -a[href="https://asktest-emea.ingredion.com"]:hover +a[href="https://asktest-emea.ingredion.com"]:hover{ text-decoration: none !important; } From ff28df484b0ec1124c561e10d70d6bff86d3a68d Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 12:03:47 +0530 Subject: [PATCH 21/40] Update header.css --- blocks/header/header.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index ea00560b..3606d4ea 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1030,6 +1030,6 @@ header a[href="https://ask-emea.ingredion.com"]:hover, header a[href="https://asktest-emea.ingredion.com"]:hover{ - text-decoration: none !important; + } From 5b67bace54df8963d1910e5ce3e73de4028f63a3 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 12:04:56 +0530 Subject: [PATCH 22/40] Update header.css --- blocks/header/header.css | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index 3606d4ea..81f24167 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1021,15 +1021,3 @@ header text-decoration: none !important; font-weight: 500; } - -header -a[href="https://ask-usca.ingredion.com"]:hover, -header -a[href="https://asktest-usca.ingredion.com"]:hover, -header -a[href="https://ask-emea.ingredion.com"]:hover, -header -a[href="https://asktest-emea.ingredion.com"]:hover{ - -} - From c8fbe33a33dc24f29819d18d1665a276ae5c7414 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 12:09:55 +0530 Subject: [PATCH 23/40] Update header.css --- blocks/header/header.css | 1 - 1 file changed, 1 deletion(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index 81f24167..958fd40b 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1019,5 +1019,4 @@ header a[href="https://asktest-emea.ingredion.com"]{ color: inherit !important; text-decoration: none !important; - font-weight: 500; } From f284bbcdb28df91fa02668aca0112b1382a6b0f1 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 12:24:07 +0530 Subject: [PATCH 24/40] Update header.css --- blocks/header/header.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/blocks/header/header.css b/blocks/header/header.css index 958fd40b..371db1d8 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1020,3 +1020,10 @@ header color: inherit !important; text-decoration: none !important; } +header a[href="https://ask-usca.ingredion.com"]:hover, +header a[href="https://asktest-usca.ingredion.com"]:hover, +header a[href="https://ask-emea.ingredion.com"]:hover, +header a[href="https://asktest-emea.ingredion.com"]:hover { + color: var(--green) !important; +} + From 55cc3a490b35c9d6f33e1e5e303d21cb41d8854f Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 12:29:38 +0530 Subject: [PATCH 25/40] Update header.css --- blocks/header/header.css | 1 + 1 file changed, 1 insertion(+) diff --git a/blocks/header/header.css b/blocks/header/header.css index 371db1d8..7e253d48 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1019,6 +1019,7 @@ header a[href="https://asktest-emea.ingredion.com"]{ color: inherit !important; text-decoration: none !important; + font-weight: inherit !important; } header a[href="https://ask-usca.ingredion.com"]:hover, header a[href="https://asktest-usca.ingredion.com"]:hover, From 4e8bc3fa23c626c58d587d5647ee5d049759acd0 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 12:45:08 +0530 Subject: [PATCH 26/40] Update header.css Ask Ingredion Link fix --- blocks/header/header.css | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index 7e253d48..516fb9fe 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1009,17 +1009,12 @@ header nav.category > ul:nth-child(3) > li { } /*Ask Ingredion link fix */ -header -a[href="https://ask-usca.ingredion.com"], -header -a[href="https://asktest-usca.ingredion.com"], -header - a[href="https://ask-emea.ingredion.com"], -header - a[href="https://asktest-emea.ingredion.com"]{ +header a[href="https://ask-usca.ingredion.com"], +header a[href="https://asktest-usca.ingredion.com"], +header a[href="https://ask-emea.ingredion.com"], +header a[href="https://asktest-emea.ingredion.com"]{ color: inherit !important; text-decoration: none !important; - font-weight: inherit !important; } header a[href="https://ask-usca.ingredion.com"]:hover, header a[href="https://asktest-usca.ingredion.com"]:hover, From b85b72c795848500f8d4c4d57c05040bd0239789 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 5 Jun 2026 13:07:50 +0530 Subject: [PATCH 27/40] Update header.js Ask ingredion link should open in new tab --- blocks/header/header.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 172bc34f..547be9e6 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -729,14 +729,14 @@ export default async function decorate(block) { // Ensure "Ask Ingredion" link opens in a new tab // This is required as per business requirement for AI Agent to open separately // Applied after header render to avoid override from AEM/EDS dynamic behavior -const askLink = [...$header.querySelectorAll('a')] - .find(a => a.textContent.includes('Ask Ingredion')); +const askLinks = [...$header.querySelectorAll('a')] + .filter(a => a.textContent.includes('Ask Ingredion')); -if (askLink) { - askLink.target = '_blank'; - askLink.rel = 'noopener noreferrer'; - askLink.title = 'Ask Ingredion for Solution Recommendations'; -} +askLinks.forEach((link) => { + link.target = '_blank'; + link.rel = 'noopener noreferrer'; + link.title = 'Ask Ingredion for Solution Recommendations'; +}); } } From 2c6d7c8aac0e3fa1e6dabad7cff643ac668f5aab Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Wed, 10 Jun 2026 10:49:09 +0530 Subject: [PATCH 28/40] Update header.js --- blocks/header/header.js | 1 - 1 file changed, 1 deletion(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 547be9e6..e3a6f04c 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -735,7 +735,6 @@ const askLinks = [...$header.querySelectorAll('a')] askLinks.forEach((link) => { link.target = '_blank'; link.rel = 'noopener noreferrer'; - link.title = 'Ask Ingredion for Solution Recommendations'; }); } } From ac5c69b54dcdf9f1f68745c6ca52656dffca47ac Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 11 Jun 2026 14:56:16 +0530 Subject: [PATCH 29/40] Update header.js --- blocks/header/header.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index e3a6f04c..62b51066 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -730,9 +730,12 @@ export default async function decorate(block) { // This is required as per business requirement for AI Agent to open separately // Applied after header render to avoid override from AEM/EDS dynamic behavior const askLinks = [...$header.querySelectorAll('a')] - .filter(a => a.textContent.includes('Ask Ingredion')); + .filter((a) => a.textContent.includes('Ask Ingredion')); + +console.log('Ask Links Found:', askLinks.length); askLinks.forEach((link) => { + console.log(link); link.target = '_blank'; link.rel = 'noopener noreferrer'; }); From 03ded3a031b1f86539e386408f1b0293e78304c9 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 11 Jun 2026 15:17:00 +0530 Subject: [PATCH 30/40] Update header.js --- blocks/header/header.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 62b51066..1dd4742c 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -729,16 +729,19 @@ export default async function decorate(block) { // Ensure "Ask Ingredion" link opens in a new tab // This is required as per business requirement for AI Agent to open separately // Applied after header render to avoid override from AEM/EDS dynamic behavior -const askLinks = [...$header.querySelectorAll('a')] - .filter((a) => a.textContent.includes('Ask Ingredion')); +const askLink = [...$header.querySelectorAll('a')] + .find((a) => + a.textContent?.trim().toLowerCase().includes('ask ingredion') + ); -console.log('Ask Links Found:', askLinks.length); +if (askLink) { + askLink.target = '_blank'; + askLink.rel = 'noopener noreferrer'; -askLinks.forEach((link) => { - console.log(link); - link.target = '_blank'; - link.rel = 'noopener noreferrer'; -}); + askLink.addEventListener('click', (e) => { + e.preventDefault(); + window.open(askLink.href, '_blank', 'noopener,noreferrer'); + }); } } From a3bc0e4f2b563110162da6af546a231d8dc3db91 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 11 Jun 2026 15:18:54 +0530 Subject: [PATCH 31/40] Update header.js --- blocks/header/header.js | 1 + 1 file changed, 1 insertion(+) diff --git a/blocks/header/header.js b/blocks/header/header.js index 1dd4742c..ccf6e42c 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -742,6 +742,7 @@ if (askLink) { e.preventDefault(); window.open(askLink.href, '_blank', 'noopener,noreferrer'); }); +} } } From 57cfec05f8ead64bf1d96e9a577f9e795e8b9bdc Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 11 Jun 2026 15:24:12 +0530 Subject: [PATCH 32/40] Update header.js --- blocks/header/header.js | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index ccf6e42c..4491b52c 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -727,25 +727,14 @@ export default async function decorate(block) { ); await buildDropdownsDesktop($header); // Ensure "Ask Ingredion" link opens in a new tab -// This is required as per business requirement for AI Agent to open separately -// Applied after header render to avoid override from AEM/EDS dynamic behavior const askLink = [...$header.querySelectorAll('a')] - .find((a) => - a.textContent?.trim().toLowerCase().includes('ask ingredion') - ); - + .find(a => a.textContent.includes('Ask Ingredion')); if (askLink) { askLink.target = '_blank'; askLink.rel = 'noopener noreferrer'; - - askLink.addEventListener('click', (e) => { - e.preventDefault(); - window.open(askLink.href, '_blank', 'noopener,noreferrer'); - }); } } } - handleView(); isMobile.addEventListener('change', handleView); } From 0a8115217f6bfa92ac3db27652224d072aa9a58c Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 11 Jun 2026 15:32:02 +0530 Subject: [PATCH 33/40] Update header.js --- blocks/header/header.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/blocks/header/header.js b/blocks/header/header.js index 4491b52c..2b12e612 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -727,6 +727,13 @@ export default async function decorate(block) { ); await buildDropdownsDesktop($header); // Ensure "Ask Ingredion" link opens in a new tab + console.log( + [...$header.querySelectorAll('a')].map(a => ({ + text: a.textContent, + href: a.href + })) +); + const askLink = [...$header.querySelectorAll('a')] .find(a => a.textContent.includes('Ask Ingredion')); if (askLink) { From bb0f09c7772b79586724509af77682e8463d4e9b Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 11 Jun 2026 15:44:06 +0530 Subject: [PATCH 34/40] Update header.js --- blocks/header/header.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 2b12e612..b5f7dc4d 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -709,6 +709,15 @@ export default async function decorate(block) { ), ); await buildDropdownsMobile($header); + + const mobileAskLinks = $header.querySelectorAll('.mobile-menu a'); + +mobileAskLinks.forEach((link) => { + if (link.textContent?.includes('Ask Ingredion')) { + link.target = '_blank'; + link.rel = 'noopener noreferrer'; + } +}); } else { document.body.classList.remove('menu-open'); $header.append( @@ -727,13 +736,6 @@ export default async function decorate(block) { ); await buildDropdownsDesktop($header); // Ensure "Ask Ingredion" link opens in a new tab - console.log( - [...$header.querySelectorAll('a')].map(a => ({ - text: a.textContent, - href: a.href - })) -); - const askLink = [...$header.querySelectorAll('a')] .find(a => a.textContent.includes('Ask Ingredion')); if (askLink) { From f16edcd1a06d2aeee6cd569a8e3740af8652cb19 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Thu, 11 Jun 2026 15:52:07 +0530 Subject: [PATCH 35/40] Update header.js Ask Ingredion mobile link should open in a new tab --- blocks/header/header.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index b5f7dc4d..f3b80db2 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -709,7 +709,7 @@ export default async function decorate(block) { ), ); await buildDropdownsMobile($header); - + //Ask Ingredion mobile link should open in new tab const mobileAskLinks = $header.querySelectorAll('.mobile-menu a'); mobileAskLinks.forEach((link) => { From 7d454b9602d0fb9c600e6f44045cd4c53a5bf3ac Mon Sep 17 00:00:00 2001 From: Shajahan Shaik2_C Date: Thu, 25 Jun 2026 23:40:23 +0530 Subject: [PATCH 36/40] Merged code from main branch --- blocks/header/header.css | 49 +++++++++++++++++++++++ blocks/header/header.js | 85 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 132 insertions(+), 2 deletions(-) diff --git a/blocks/header/header.css b/blocks/header/header.css index 516fb9fe..308f2963 100644 --- a/blocks/header/header.css +++ b/blocks/header/header.css @@ -1,6 +1,39 @@ /* stylelint-disable font-family-no-missing-generic-family-keyword, no-descending-specificity */ @import url("../../styles/select-dropdown.css"); +/* Skip to content button styling */ +header button.skip-button { + position: absolute; + clip-path: inset(100%); + width: 100%; + padding: 1rem 1.5rem; + background: #e8e8e8; + color: #000; + font-size: 1rem; + font-weight: normal; + border: none; + border-bottom: 2px solid #000; + cursor: pointer; + text-decoration: underline; + white-space: nowrap; + text-align: center; + outline: none; + box-sizing: border-box; + margin: 0; +} + +header button.skip-button:hover { + background: #d0d0d0; +} + +header button.skip-button:focus, +header button.skip-button:focus-visible { + position: relative; + clip-path: none; + outline: 2px solid #000; + outline-offset: 2px; +} + body.menu-open { overflow: hidden; height: 100%; @@ -1008,6 +1041,22 @@ header nav.category > ul:nth-child(3) > li { } } +/* Focus styles for keyboard accessibility */ +header nav.category > ul > li > div[data-dropdown="true"]:focus-visible { + outline: 2px solid var(--green); + outline-offset: 2px; +} + +header nav.utility > p:focus-visible { + outline: 2px solid var(--green); + outline-offset: -2px; +} + +header nav.category > ul > li > a:focus-visible { + outline: 2px solid var(--green); + outline-offset: 2px; +} + /*Ask Ingredion link fix */ header a[href="https://ask-usca.ingredion.com"], header a[href="https://asktest-usca.ingredion.com"], diff --git a/blocks/header/header.js b/blocks/header/header.js index f3b80db2..74fe2730 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -262,13 +262,17 @@ async function buildDropdownsDesktop($header) { // Replace the link with the div link.parentElement.replaceChild(newDiv, link); newDiv.setAttribute('data-dropdown', 'true'); + newDiv.setAttribute('tabindex', '0'); + newDiv.setAttribute('role', 'button'); + newDiv.setAttribute('aria-expanded', 'false'); + newDiv.setAttribute('aria-haspopup', 'true'); const subNavFrag = await loadFragment(subNavPath); if (!subNavFrag) { newDiv.remove(); return; } - const $dropDown = div({ class: 'dropdown' }); + const $dropDown = div({ class: 'dropdown', role: 'menu' }); while (subNavFrag.firstElementChild) $dropDown.append(subNavFrag.firstElementChild); newDiv.parentElement.append($dropDown); @@ -281,12 +285,13 @@ async function buildDropdownsDesktop($header) { const utility = document.querySelector('.utility'); const utilityFirstP = utility.querySelector('p'); const dropdown = utilityFirstP.querySelector('.dropdown'); - utilityFirstP.addEventListener('click', () => { + const toggleDropdown = () => { if (activeDropdown === dropdown) { // If this dropdown is already active, close it if (activeDropdown && activeDropdown.parentElement) { activeDropdown.parentElement.classList.remove('active'); } + newDiv.setAttribute('aria-expanded', 'false'); activeDropdown = null; } else { // If another dropdown is active, close it first @@ -295,8 +300,26 @@ async function buildDropdownsDesktop($header) { } // Open this dropdown dropdown.parentElement.classList.add('active'); + newDiv.setAttribute('aria-expanded', 'true'); activeDropdown = dropdown; } + }; + + utilityFirstP.addEventListener('click', toggleDropdown); + // Add keyboard support + utilityFirstP.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + toggleDropdown(); + } else if (e.key === 'Escape' && activeDropdown === dropdown) { + e.preventDefault(); + if (activeDropdown && activeDropdown.parentElement) { + activeDropdown.parentElement.classList.remove('active'); + } + newDiv.setAttribute('aria-expanded', 'false'); + activeDropdown = null; + utilityFirstP.focus(); + } }); document.addEventListener('click', (e) => { const isClickOnDropdown = dropdown.contains(e.target); @@ -305,6 +328,7 @@ async function buildDropdownsDesktop($header) { if (activeDropdown && activeDropdown.parentElement) { activeDropdown.parentElement.classList.remove('active'); } + newDiv.setAttribute('aria-expanded', 'false'); activeDropdown = null; } }); @@ -315,6 +339,7 @@ async function buildDropdownsDesktop($header) { activeDropdown.parentElement.classList.remove('active'); } $dropDown.parentElement.classList.add('active'); + newDiv.setAttribute('aria-expanded', 'true'); activeDropdown = $dropDown; }, 100, @@ -326,6 +351,7 @@ async function buildDropdownsDesktop($header) { const isInTrigger = newDiv.contains(relatedTarget); if (!isInDropdown && !isInTrigger && activeDropdown && activeDropdown.parentElement) { activeDropdown.parentElement.classList.remove('active'); + newDiv.setAttribute('aria-expanded', 'false'); activeDropdown = null; } }; @@ -333,6 +359,19 @@ async function buildDropdownsDesktop($header) { newDiv.addEventListener('pointerenter', openDropdown); newDiv.addEventListener('pointerleave', closeDropdown); $dropDown.addEventListener('pointerleave', closeDropdown); + // Add keyboard support + newDiv.addEventListener('keydown', (e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + openDropdown(); + } else if (e.key === 'Escape' && activeDropdown && activeDropdown.parentElement) { + e.preventDefault(); + activeDropdown.parentElement.classList.remove('active'); + newDiv.setAttribute('aria-expanded', 'false'); + activeDropdown = null; + newDiv.focus(); + } + }); } } @@ -687,6 +726,47 @@ export default async function decorate(block) { const $navCategory = nav({ class: 'category' }, ...$categoryNav); + function createSkipButton() { + const skipBtn = button( + { + class: 'skip-button', + id: 'skip-id', + tabindex: '0', + 'aria-label': 'Skip to main content', + type: 'button', + }, + 'Skip to content', + ); + + skipBtn.addEventListener('click', () => { + // Find first interactive element inside main content + const target = document.querySelector( + [ + 'main a[href]', + 'main button:not([disabled])', + 'main input:not([disabled])', + 'main select:not([disabled])', + 'main textarea:not([disabled])', + 'main [tabindex]:not([tabindex="-1"])', + ].join(','), + ); + + // Exit if no interactive element exists + if (!target) return; + + // Move keyboard focus + target.focus(); + + // Bring focused element into viewport + target.scrollIntoView({ + behavior: 'smooth', + block: 'start', + }); + }); + + return skipBtn; + } + async function handleView() { $header.innerHTML = ''; if (isMobile.matches) { @@ -732,6 +812,7 @@ mobileAskLinks.forEach((link) => { $searchBar, $btnTechDocSamples.cloneNode(true), ), + createSkipButton(), $navCategory.cloneNode(true), ); await buildDropdownsDesktop($header); From ce3cc4bc0b918946637d940de7d3f5b3c0543241 Mon Sep 17 00:00:00 2001 From: Shajahan Shaik2_C Date: Fri, 26 Jun 2026 00:12:07 +0530 Subject: [PATCH 37/40] PSI Checks --- blocks/header/header.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 74fe2730..17a60258 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -789,15 +789,14 @@ export default async function decorate(block) { ), ); await buildDropdownsMobile($header); - //Ask Ingredion mobile link should open in new tab const mobileAskLinks = $header.querySelectorAll('.mobile-menu a'); -mobileAskLinks.forEach((link) => { - if (link.textContent?.includes('Ask Ingredion')) { - link.target = '_blank'; - link.rel = 'noopener noreferrer'; - } -}); + mobileAskLinks.forEach((link) => { + if (link.textContent?.includes('Ask Ingredion')) { + link.target = '_blank'; + link.rel = 'noopener noreferrer'; + } + }); } else { document.body.classList.remove('menu-open'); $header.append( From 9059f399ed7f187aee370a667fad6b64b9c667d7 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 26 Jun 2026 14:58:56 +0530 Subject: [PATCH 38/40] Update header.js --- blocks/header/header.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 17a60258..4dd50df7 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -790,7 +790,6 @@ export default async function decorate(block) { ); await buildDropdownsMobile($header); const mobileAskLinks = $header.querySelectorAll('.mobile-menu a'); - mobileAskLinks.forEach((link) => { if (link.textContent?.includes('Ask Ingredion')) { link.target = '_blank'; @@ -815,13 +814,13 @@ export default async function decorate(block) { $navCategory.cloneNode(true), ); await buildDropdownsDesktop($header); -// Ensure "Ask Ingredion" link opens in a new tab -const askLink = [...$header.querySelectorAll('a')] - .find(a => a.textContent.includes('Ask Ingredion')); -if (askLink) { - askLink.target = '_blank'; - askLink.rel = 'noopener noreferrer'; -} + // Ensure "Ask Ingredion" link opens in a new tab + const askLink = [...$header.querySelectorAll('a')] + .find(a => a.textContent.includes('Ask Ingredion')); + if (askLink) { + askLink.target = '_blank'; + askLink.rel = 'noopener noreferrer'; + } } } handleView(); From 15c614806232288dc671dea3f02c91b38f79d2f3 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 26 Jun 2026 15:01:48 +0530 Subject: [PATCH 39/40] Update header.js --- blocks/header/header.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index 4dd50df7..ced44e3c 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -816,7 +816,7 @@ export default async function decorate(block) { await buildDropdownsDesktop($header); // Ensure "Ask Ingredion" link opens in a new tab const askLink = [...$header.querySelectorAll('a')] - .find(a => a.textContent.includes('Ask Ingredion')); + .find(ask => (ask.textContent.includes('Ask Ingredion'))); if (askLink) { askLink.target = '_blank'; askLink.rel = 'noopener noreferrer'; From 0aaae65efdc49d6a87bf0f7973756a2c1d9bfdb7 Mon Sep 17 00:00:00 2001 From: SaiVikashLankalapalli Date: Fri, 26 Jun 2026 15:04:51 +0530 Subject: [PATCH 40/40] Update header.js --- blocks/header/header.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blocks/header/header.js b/blocks/header/header.js index ced44e3c..da8a0108 100644 --- a/blocks/header/header.js +++ b/blocks/header/header.js @@ -816,7 +816,7 @@ export default async function decorate(block) { await buildDropdownsDesktop($header); // Ensure "Ask Ingredion" link opens in a new tab const askLink = [...$header.querySelectorAll('a')] - .find(ask => (ask.textContent.includes('Ask Ingredion'))); + .find((ask) => ask.textContent.includes('Ask Ingredion')); if (askLink) { askLink.target = '_blank'; askLink.rel = 'noopener noreferrer';